【问题标题】:scala object Task not serializablescala对象任务不可序列化
【发布时间】: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


【解决方案1】:

这是齐柏林飞艇的功劳。我在另一个 spark shell 上测试了同样的东西,它起作用了。我希望这个案例可以帮助其他人的时间。

【讨论】:

    猜你喜欢
    • 2018-09-19
    • 2015-11-11
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 2020-07-01
    相关资源
    最近更新 更多