我正在寻求实现一个自定义的hadoop Writable类,其中的一个字段是时间戳。我似乎在hadoop库中找不到一个类(例如,日期或日历的可写对象)可以使此操作变得容易。我正在考虑使用Calendar上的get / setTimeInMillis创建一个自定义可写对象,但是我想知道是否有更好/内置的解决方案来解决此问题。
最佳答案
Hadoop中的日历/日期没有可写的。考虑到您可以从Calendar对象中获取long的timeInMillis,因此,当且仅当您的应用程序始终使用默认UTC时区(即,它与时区“无关”)时,才可以使用LongWritable序列化日历对象。该timeInMillis代表UTC时间)。
如果您使用另一个时区,或者您的应用程序需要能够针对各个时区解释timeInMillis,则必须从头开始编写默认的Writable实现。