RDD map和mapPartitions方法之间有什么区别?并且flatMap表现得像map还是喜欢mapPartitions?谢谢。(edit),即两者之间在语义上或执行上有什么区别 def map[A, B](rdd: RDD[A], fn: (A => B)) (implicit a: Manifest[A], b: Manifest[B]): RDD[B] = { rdd.mapPartitions({ iter: Iterator[A] => for (i <- iter) yield fn(i) }, preservesPartitioning = true) }和: def map[A, B](rdd: RDD[A], fn: (A => B)) (implicit a: Manifest[A], b: Manifest[B]): RDD[B] = { rdd.map(fn) }
3 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
RDD的map和mapPartitions方法之间有什么区别?
方法映射通过应用函数将源RDD的每个元素转换为结果RDD的单个元素。mapPartitions将源RDD的每个分区转换为结果的多个元素(可能没有)。
flatMap的行为类似于map还是mapPartitions?
flatMap都不对单个元素(如map)工作,也不产生结果的多个元素(如mapPartitions)。
添加回答
举报
0/150
提交
取消