“任务未序列化”在spark中的mapPartitionsWithIndex内调用Function时出错

时间:2017-03-06 06:49:32

标签: scala apache-spark spark-dataframe rdd

我是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      
}

我的问题是为什么我得到“任务未序列化”错误在上面的代码中或我可以使用任何其他方法实现相同的事情。

提前致谢。

0 个答案:

没有答案