我正在运行这个简单的代码:
val accum = sc.accumulator(0, "Progress");
listFilesPar.foreach {
filepath =>
accum += 1
}
listFilesPar 是一个RDD[String]
这会引发以下错误:
org.apache.spark.SparkException: Task not serializable
现在我不明白发生了什么
我不放括号而是放方括号,因为我需要编写一个很长的函数。我只是在做单元测试
造成这种情况的典型原因是闭包意外捕获了某些内容。您未在粘贴中包含的内容,因为您永远不会想到它会被序列化。
您可以尝试减少代码,直到找到为止。或者只是打开序列化调试日志记录-Dsun.io.serialization.extendedDebugInfo=true
。您可能会在输出中看到 Spark 尝试序列化一些愚蠢的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)