问题描述
defmap[U:ClassTag](f:T=>U):RDD[U]={valcleanF=sc.clean(f)newMapPartitionsRDD[U,T](this,(context,pid,iter)=>iter.map(cleanF))}RDD.scala里的这个方法里的context,pid,iter不知道从哪来的啊??https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/RDD.scala
解决方案
本帖最后由 guotong1988 于 2015-03-03 15:32:45 编辑
解决方案二:
这里的(context,pid,iter)=>iter.map(cleanF)是个匿名函数,作为一个类参数传入MapPartitionsRDD(也就是说在这个地方当前不会运行),(context,pid,iter)是该匿名函数的参数列表.context,pid,iter的实际值是在MapPartitionsRDD.compute方法中调用该匿名函数时传入的.
时间: 2024-12-09 10:38:04