【问题标题】:Spark serialization error using LocalDateTime使用 LocalDateTime 的 Spark 序列化错误
【发布时间】:2016-03-09 16:18:55
【问题描述】:

代码 -

val rdd=sc.textFile("/tmp/abc.csv")
rdd.first.split(",").zipWithIndex
val rows=rdd.filter(x => !x.contains("ID") && !x.contains("Case Number"))
val split1=rows.map(x => x.split(","))
split1.take(3)
import java.time._
import java.time.format._
val format=DateTimeFormatter.ofPattern("MM/dd/yyyy h:m:s a")
val dates=split1.map( x => LocalDateTime.parse( x(2) , format))

错误:

org.apache.spark.SparkException:任务不可序列化 org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:304)

【问题讨论】:

  • 您使用的是默认序列化程序还是 Kryo? (或其他)

标签: scala apache-spark


【解决方案1】:

处理这个问题的相当丑陋的方法是在匿名函数中推送格式初始化:

split1.map(x => 
  LocalDateTime.parse(x(2), DateTimeFormatter.ofPattern("MM/dd/yyyy h:m:s a")))

【讨论】:

    猜你喜欢
    • 2014-06-30
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    相关资源
    最近更新 更多