我尝试解决Spark 2.2序列化问题。该错误众所周知,我通常使用forEachPartition
或mapPartitions
来解决它。
但是,现在这种方法不起作用。我有第三方库的对象modCol
。
val modCol = // Non-serializable object
val rdd = myRDD.mapPartitions{ iter =>
val c = modCol
iter.map(
x => {
(x.getId, x.getAttribute(c))
})
}
val df = rdd.toDF()
但是,我收到c
的任务序列化错误:
Caused by: java.io.NotSerializableException: org.gephi.graph.impl.ColumnImpl
我的最终目标是创建一个DataFrame df
。
答案 0 :(得分:0)
错误众所周知,我通常使用forEachPartition或mapPartitions来解决它。
确实,但你没有正确使用它。不要在外部范围内初始化对象。在函数调用中初始化它:
1