Apache spark 什么是格洛姆?。它与mapPartitions有何不同?
我在RDD上遇到了Apache spark 什么是格洛姆?。它与mapPartitions有何不同?,apache-spark,rdd,Apache Spark,Rdd,我在RDD上遇到了glom()方法。根据文件 返回通过将每个分区内的所有元素合并到一个数组中而创建的RDD glom是在分区之间洗牌数据,还是只将分区数据作为数组返回?在后一种情况下,我相信使用mapPartitions也可以实现同样的效果 我还想知道是否有任何用例受益于glom glom是否跨分区洗牌数据 不,没有 如果这是第二种情况,我相信使用mapPartitions也可以实现同样的效果 它可以: rdd.mapPartitions(iter => Iterator(_.toArra
glom()
方法。根据文件
返回通过将每个分区内的所有元素合并到一个数组中而创建的RDD
glom
是在分区之间洗牌数据,还是只将分区数据作为数组返回?在后一种情况下,我相信使用mapPartitions
也可以实现同样的效果
我还想知道是否有任何用例受益于glom
glom
是否跨分区洗牌数据
不,没有
如果这是第二种情况,我相信使用mapPartitions也可以实现同样的效果
它可以:
rdd.mapPartitions(iter => Iterator(_.toArray))
但同样的情况也适用于任何非无序转换,如map
、flatMap
或过滤器
如果有任何用例受益于glob
需要以可多次遍历的形式访问分区数据的任何情况。glom()
将每个分区转换为元素的元组(不可变列表)。它创建元组的RDD
。每个分区一个元组。“…Glom()
一般来说,spark不允许工作人员引用RDD的特定元素。
保持语言整洁,但可能是一个主要限制。
glom()将每个分区转换为元素的元组(不可变列表)。
创建tules的RDD。每个分区一个元组。
工人可以通过索引引用分区的元素。
但是不能给元素赋值,RDD仍然是不可变的。
现在我们可以理解上面用来计算每个分区中元素数量的命令。
我们使用glom()
将每个分区组成一个元组。
我们在每个分区上使用len
来获得分区的元组大小的长度。
*我们
收集
结果并将其打印出来。我们不能从mapPartitions或map或filter的输出中遍历多次吗?这与我的意思不完全相同。假设您有一个函数(vs:t)=>用于{x@zero323以一种很好的方式解释了…想要添加imp.tip,即glom
在您想要使用矩阵库实现RDD操作时非常有用,这些矩阵库经过优化以在阵列上操作