【发布时间】:2015-12-02 01:00:33
【问题描述】:
我需要执行器在不同时间完成数据处理。
我认为最简单的方法是让 RDD 分区没有统一的大小。我该怎么做?
【问题讨论】:
标签: apache-spark pyspark rdd
我需要执行器在不同时间完成数据处理。
我认为最简单的方法是让 RDD 分区没有统一的大小。我该怎么做?
【问题讨论】:
标签: apache-spark pyspark rdd
不确定您要达到什么目的,但您可以使用partitionBy 对 RDD 进行分区,例如:
sc.parallelize(xrange(10)).zipWithIndex()
.partitionBy(2, lambda x: 0 if x<2 else 1)
.glom().collect()
[[(0, 0), (1, 1)], [(2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]]
请注意,它适用于 (k,v) RDD,并且分区函数仅将 k 作为参数
【讨论】: