2017-05-15 55 views
0

Spark: 我有一個長度爲'n'(a1,a2,... ak,... an)的連續數據。我必須執行樂趣(a1,a2,... a5),樂趣(a5,a6,... a9),...... 樂趣(an-4 ... an- 2,an-1,an),其中有趣是一個數學運算並獨立應用於數據塊。 我希望這些塊應該並行執行。我是否有奢侈的執行者(每個區塊)提供開始和結束範圍? [塊大小可變但均勻]。在Spark-Python中定義工作人員的數據範圍

+1

請更具體並共享數據,代碼和輸出。 – mtoto

回答

0

添加一個索引:

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) 
+0

感謝您提供快速響應的解決方案。 我可以使用具有重疊值的存儲桶'm'的重疊條紋大小,其中'm'<'k'表示最後一個「m」桶的值與下一個桶中的第一個「m」值相同? –

+0

第二功能:有趣的是一次應用在窗口的所有值上面提到的方式是在不解決目的的時候處理一個索引。 –