Spark / kryo / Joda时间:java.lang.NullPointerException

时间:2016-05-16 19:22:50

标签: apache-spark jodatime kryo

我得到了:

Caused by: java.lang.NullPointerException
    at org.joda.time.tz.CachedDateTimeZone.getInfo(CachedDateTimeZone.java:143)
    at org.joda.time.tz.CachedDateTimeZone.getOffset(CachedDateTimeZone.java:103)
    at org.joda.time.DateTimeZone.convertUTCToLocal(DateTimeZone.java:925)
    at org.joda.time.chrono.ZonedChronology$ZonedDateTimeField.get(ZonedChronology.java:432)
    at org.joda.time.base.AbstractDateTime.getMillisOfDay(AbstractDateTime.java:240)

我按照以下方式配置了kryo:

val sparkConfiguration = new SparkConf().setAppName("Session Logs to Parquet Job").set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
  sparkConfiguration.registerKryoClasses(Array(
      classOf[org.joda.time.DateTime],
      classOf[org.joda.time.Interval],
      classOf[org.joda.time.tz.DateTimeZoneBuilder],
      classOf[org.joda.time.tz.FixedDateTimeZone],
      Class.forName("org.joda.time.tz.CachedDateTimeZone$Info"),
      ClassTag(Class.forName("org.joda.time.tz.CachedDateTimeZone$Info")).wrap.runtimeClass,
      classOf[org.joda.time.tz.CachedDateTimeZone]
    )
  )

我实际上正在使用:getHourOfDay(dt) 其中dt是日期时间。目标是在spark中使用kryo序列化器。 Joda 2.9.3。

我错过了什么? 有什么想法吗?

由于

0 个答案:

没有答案