对于RDD(related)中的顺序,我的一个假设似乎不正确。
假设我希望对RDD进行排序后对其重新分区。
import random
l = list(range(20))
random.shuffle(l)
spark.sparkContext\
.parallelize(l)\
.sortBy(lambda x:x)\
.repartition(3)\
.collect()
哪种产量:
[16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
我们可以看到,订单保留在一个分区内 ,但是总订单未保留在所有分区上。
我想保留RDD的总顺序,如下所示:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
我很难在网上找到任何可以帮助的东西。帮助将不胜感激。
答案 0 :(得分:1)
看来我们可以向montecarlo::montecarlo(double x_min, double x_max){
rand = [](){return 0;};
}
函数提供参数numPartitions=partitions
来划分RDD并保留总顺序:
sortBy