与第三方库的任务序列化错误

时间:2018-01-08 22:19:35

标签: scala apache-spark

我尝试解决Spark 2.2序列化问题。该错误众所周知,我通常使用forEachPartitionmapPartitions来解决它。 但是,现在这种方法不起作用。我有第三方库的对象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

1 个答案:

答案 0 :(得分:0)

  

错误众所周知,我通常使用forEachPartition或mapPartitions来解决它。

确实,但你没有正确使用它。不要在外部范围内初始化对象。在函数调用中初始化它:

1