【发布时间】:2020-08-14 05:28:51
【问题描述】:
object Util extends Serializable {
def add(str: String): String = str + " ha ha"
}
object Job extends Serializable {
def start(days: Int): Unit = {
import spark.implicits._
val data = (0 to days).toList.toDS.map(x => Util.add(x.toString))
data.collect.foreach(println)
}
}
Job.start(10)
我制作了一个非常简单的脚本来测试为什么在 Zeppelin 中会出现 Task-Not-Serializable 问题。
如果我将Util.add(x.toString) 更改为x.toString + " ha ha",那么,完全没问题。
但我想知道为什么我不能在这里使用对象 Util。
【问题讨论】:
-
惊喜...我没有zeppelin,我在spark shell中尝试过它工作正常...我在本地测试用例中测试它也给出了正确的结果而没有附加字符串哈哈.. 不知道 zeppelin 出了什么问题
-
你能发完整的
Serialization stack: - object not serializable (它会清楚地指出哪里错了 -
事实证明它可以在另一个 spark shell 上工作。所以,我的结论是这是齐柏林飞艇的问题。感谢您检查此@RamGhadiyaram
标签: scala apache-spark apache-zeppelin