什么是幽灵?它与mapPartitions有何不同?

nag*_*dra 11 apache-spark rdd

glom()在RDD上遇到过这个方法.根据文档

返回通过将每个分区中的所有元素合并为数组而创建的RDD

是否会glom跨分区对数据进行混洗,还是仅将分区数据作为数组返回?在后一种情况下,我相信可以使用相同的方法来实现mapPartitions.

我还想知道是否有任何用例受益glom.

zer*_*323 11

是否glom跨分区对数据进行洗牌

不,它没有

如果这是第二种情况,我相信使用mapPartitions可以实现同样的目的

它可以:

rdd.mapPartitions(iter => Iterator(_.toArray))
Run Code Online (Sandbox Code Playgroud)

但同样的事情适用于任何非改组转换,如map,flatMapfilter.

如果有任何用例受益于glob.

您需要以可遍历多次的形式访问分区数据的任何情况.


小智 7

glom()将每个分区转换为元素的元组(不可变列表)。它创建了一个RDD元组。每个分区一个元组。