Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 什么是格洛姆?。它与mapPartitions有何不同?_Apache Spark_Rdd - Fatal编程技术网

Apache spark 什么是格洛姆?。它与mapPartitions有何不同?

Apache spark 什么是格洛姆?。它与mapPartitions有何不同?,apache-spark,rdd,Apache Spark,Rdd,我在RDD上遇到了glom()方法。根据文件 返回通过将每个分区内的所有元素合并到一个数组中而创建的RDD glom是在分区之间洗牌数据,还是只将分区数据作为数组返回?在后一种情况下,我相信使用mapPartitions也可以实现同样的效果 我还想知道是否有任何用例受益于glom glom是否跨分区洗牌数据 不,没有 如果这是第二种情况,我相信使用mapPartitions也可以实现同样的效果 它可以: rdd.mapPartitions(iter => Iterator(_.toArra

我在RDD上遇到了
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操作时非常有用,这些矩阵库经过优化以在阵列上操作