我正在运行这个简单的代码:
val accum = sc.accumulator(0, "Progress");
listFilesPar.foreach {
filepath =>
accum += 1
}
listFilesPar是RDD[String]
会抛出以下错误:
org.apache.spark.SparkException: Task not serializable
现在我不明白发生了什么 我不会括号括号,因为我需要写一个冗长的函数。我只是做单元测试
答案 0 :(得分:6)
这种情况的典型原因是闭合意外地抓住了某些东西。你没有在你的粘贴中包含的东西,因为你永远不会期望它会被序列化。
您可以尝试减少代码,直到找到它为止。或者只需使用-Dsun.io.serialization.extendedDebugInfo=true
打开序列化调试日志记录。你可能会在输出中看到Spark试图将某些东西序列化。