在 Spark 中定义 worker 的数据范围-Python
Defining worker's data range in Spark-Python
火花:
我有一个长度为 'n' (a1, a2,...ak,...an) 的顺序数据。我必须执行 fun(a1, a2,...a5), fun(a5,a6,...a9),.. ....fun(an-4...an-2,an-1,an),其中 fun 是一个数学运算,并且独立应用于数据块。
我希望这些块应该并行执行。我是否可以奢侈地为执行者(每个区块)提供开始和结束范围? [块大小可变但统一]。
添加索引:
rdd_indexed = rdd.zipWithIndex()
生成桶:
with_buckets = rdd.mapValues(lambda x: x % 5)
交换:
swapped = rdd.map(lambda xi: (x[1], x[0]))
和reduceByKey
:
swapped.reduceByKey(f)
火花: 我有一个长度为 'n' (a1, a2,...ak,...an) 的顺序数据。我必须执行 fun(a1, a2,...a5), fun(a5,a6,...a9),.. ....fun(an-4...an-2,an-1,an),其中 fun 是一个数学运算,并且独立应用于数据块。 我希望这些块应该并行执行。我是否可以奢侈地为执行者(每个区块)提供开始和结束范围? [块大小可变但统一]。
添加索引:
rdd_indexed = rdd.zipWithIndex()
生成桶:
with_buckets = rdd.mapValues(lambda x: x % 5)
交换:
swapped = rdd.map(lambda xi: (x[1], x[0]))
和reduceByKey
:
swapped.reduceByKey(f)