0
我有此RDD(示出兩個元件):Pyspark:總和列的值
[['a', [1, 2]], ['b', [3, 0]]]
和我想在基於索引列表加起來元素,所以有 最終結果
[4, 2]
我該如何做到這一點?我知道第一個元素('a'/'b')的存在是無關緊要的,因爲我可以用一張地圖去除它,所以問題變成了如何求和列值。
我有此RDD(示出兩個元件):Pyspark:總和列的值
[['a', [1, 2]], ['b', [3, 0]]]
和我想在基於索引列表加起來元素,所以有 最終結果
[4, 2]
我該如何做到這一點?我知道第一個元素('a'/'b')的存在是無關緊要的,因爲我可以用一張地圖去除它,所以問題變成了如何求和列值。
可以剝離的按鍵如你所說,進而降低您的RDD如下(假設你有2列):
myRDD.reduce(lambda x,y:[x[0]+y[0], x[1]+y[1]])
這會給你所有列的總和
$ pyspark
>>> x = [['a', [1, 2]], ['b', [3, 0]]]
>>> rdd = sc.parallelize(x)
>>> rdd.map(lambda x: x[1]).reduce(lambda x,y: [sum(i) for i in zip(x, y)])