最佳答案
RDD 的的 map
和 mapPartitions
的方法有什么区别? flatMap
的行为是像 map
还是像 mapPartitions
? 谢谢。
(编辑) 也就是说,两者之间的区别(无论是语义上的还是执行方面的)是什么
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)
}