在pyspark中按元素添加列表
问题描述:
我想采用整数列表的RDD并将其减少到一个列表。例如...在pyspark中按元素添加列表
[1, 2, 3, 4]
[2, 3, 4, 5]
到
[3, 5, 7, 9]
我可以使用Python中的zip功能,但不知道如何复制它在火花除了做收集对象上做到这一点,但我想保持rdd中的数据。
答
如果rdd
所有元素都是相同的长度,你可以使用reduce
与zip
:
rdd = sc.parallelize([[1,2,3,4],[2,3,4,5]])
rdd.reduce(lambda x, y: [i+j for i, j in zip(x, y)])
# [3, 5, 7, 9]
的感谢!我尝试过类似的东西,但没有想到将它分解为x和y。 – pad11