相关疑难解决方法(0)

Spark - 任务不可序列化:如何使用调用外部类/对象的复杂映射闭包?

看看这个问题:Scala + Spark - 任务不可序列化:java.io.NotSerializableExceptionon.当只在类而不是对象上调用闭包外的函数时.

问题:

假设我的映射器可以是函数(def),它在内部调用其他类并创建对象并在其中执行不同的操作.(或者它们甚至可以是扩展(Foo)=> Bar的类并在其apply方法中进行处理 - 但是现在让我们忽略这种情况)

Spark仅支持Java Serialization for closures.有没有办法解决这个问题?我们可以用东西而不是封闭来做我想做的事吗?我们可以使用Hadoop轻松完成这类工作.这一点让Spark几乎无法使用.人们不能指望所有第三方库都将所有类扩展为Serializable!

可能的解决方案:

这样的事情似乎有用吗:https://github.com/amplab/shark/blob/master/src/main/scala/shark/execution/serialization/KryoSerializationWrapper.scala

它当然似乎是一个包装器的答案,但我不知道究竟是怎么回事.

java serialization scala apache-spark

19
推荐指数
1
解决办法
9791
查看次数

标签 统计

apache-spark ×1

java ×1

scala ×1

serialization ×1