glom
1、glom的作用是将同一个分区里的元素合并到一个array里
2、glom属于Transformation算子
# Example: glom
import sys
import random
a = sc.parallelize(range(0,100),10) #parallelize 进行并行处理,0~100每隔10步长取一次
print(a.collect()) #没有glom所以不分组
print(a.glom().collect())
print(a.map(lambda x: random.random()).glom().collect())# glom函数(glom有偷、抢、看的意思)
#该函数把一个RDD中每一个partition上的所有T类型的元素转换为Array[T]即把每个partition上的元素全部集中到一个数组中
#random.random 随机生成0-1的浮点数
# Weird behavior: Initially, random numbers are synched across all workers, but will get
# out-of-sync after a large (e.g, 1000000) number of random numbers have been generated.
正常结果:
(由于随机性,浮点数组可能不一样)
偶然发抽的不正常结果:
每个分区居然是一样的种子