【发布时间】:2020-07-10 05:56:44
【问题描述】:
所以我有 2 个 RDD(比如说 RDD1 和 RDD2),每个都有一个数字列表。这两个列表大小相同。我想创建一个 RDD3,其中 RDD3 中的每个元素都是 RDD1 和 RDD2 的相应元素的相加。如何在 python 中使用 pyspark 函数做到这一点?
【问题讨论】:
所以我有 2 个 RDD(比如说 RDD1 和 RDD2),每个都有一个数字列表。这两个列表大小相同。我想创建一个 RDD3,其中 RDD3 中的每个元素都是 RDD1 和 RDD2 的相应元素的相加。如何在 python 中使用 pyspark 函数做到这一点?
【问题讨论】:
如果列表不是太大,那么以下可以工作。让我知道这是否有效或您有其他建议
rdd1 = sc.parallelize([100,200,300])
rdd2 = sc.parallelize([101,202,303])
print(rdd1.collect())
print(rdd2.collect())
# [100, 200, 300]
# [101, 202, 303]
output = []
for i, element in enumerate(rdd1.collect()):
output.append(element + rdd2.collect()[i])
rdd3 = sc.parallelize(output)
print(rdd3.collect())
# [201, 402, 603]
【讨论】: