【发布时间】:2019-12-06 21:45:28
【问题描述】:
根据this article,例如,当您在 RDD.map 中使用对象时,Spark 将首先序列化整个 ojbect。现在,让我们说,我有一个 RDD 定义为该可序列化类的成员。 Spark 会为该 RDD 做什么,它是否也会尝试对其进行序列化。如果有,怎么做?
以下是示例代码。
class SomeClass extends Serializable {
var a: String
var b: Int
var rdd: RDD[...]
....
}
objectOfSomeClass = new SomeClass(...)
...
someRDD.map(x => someFunc(objectOfSomeClass))
【问题讨论】:
-
它只会失败并告诉你对象不可序列化
-
不,它没有。我一直在使用 RDD 作为成员变量,没有任何问题。我只是担心它是否会影响性能。只要不尝试在其他 RDD 中使用 RDD,就没有问题。就我而言,我只是使用该类的一些其他成员变量,而不是 RDD 的。我现在添加了一个示例。
-
Serializing RDD的可能重复
标签: scala apache-spark rdd