我是Scala的新手。我想在 mapPartitionsWithIndex 中调用功能。但是,如果我这样做,那么我收到错误“任务未序列化”。任何人都可以对此有所了解。
错误代码:
val x = subRdd.mapPartitionsWithIndex((idx, iter) => mapitr(iter, minusRdd,sc))
def mapitr(value: (Iterator[((Long,Long),(Boolean))]),
rdd1: RDD[((Long, Long), Boolean)],
sc: SparkContext): Iterator[((Long,Long),(Boolean))] = {
var x = Iterator[((Long,Long),(Boolean))]()
if (value.length > 0) {
val rdd=sc.parallelize(value.toSeq)
val substractedRdd=rdd.subtractByKey(rdd1)
x = substractedRdd.toArray().toIterator
}
x
}
我的问题是为什么我得到“任务未序列化”错误在上面的代码中或我可以使用任何其他方法实现相同的事情。
提前致谢。