簡體   English   中英

PySpark RDD:操縱內部數組

[英]PySpark RDD: Manipulating Inner Array

我有一個數據集(例如)

sc = SparkContext()
x =  [(1, [2, 3, 4, 5]), (2, [2, 7, 8, 10])]
y = sc.parallelize(x)
print(y.take(1))

打印語句返回 [(1, [2, 3, 4, 5])]

我現在需要在 RDD 中將子數組中的所有內容乘以 2。 由於我已經並行化,我無法進一步分解“y.take(1)”以將 [2, 3, 4, 5] 乘以 2。

我如何從本質上隔離我的工作節點之間的內部數組,然后進行乘法運算?

我認為您可以將map與 lambda function 一起使用:

y = sc.parallelize(x).map(lambda x: (x[0], [2*t for t in x[1]]))

然后y.take(2)返回:

[(1, [4, 6, 8, 10]), (2, [4, 14, 16, 20])]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM