如何在PySpark中合并多个RDD

如何在PySpark中合并多个RDD,pyspark,rdd,Pyspark,Rdd,我想使用一个键将多个RDD合并成一个RDD。有没有一种有效的方法来代替多次加入 例如: Rdd_1 = [(0, a), (1, b), (2, c), (3, d)] Rdd_2 = [(0, aa), (1, bb), (2, cc), (3, dd)] Rdd_3 = [(0, aaa), (1, bbb), (2, ccc), (3, ddd)] 我认为输出应该是这样的 Rdd = [(0, a, aa, aaa), (1, b, bb, bbb), (2, c, cc, ccc),

我想使用一个键将多个RDD合并成一个RDD。有没有一种有效的方法来代替多次加入

例如:

Rdd_1 = [(0, a), (1, b), (2, c), (3, d)]
Rdd_2 = [(0, aa), (1, bb), (2, cc), (3, dd)]
Rdd_3 = [(0, aaa), (1, bbb), (2, ccc), (3, ddd)]
我认为输出应该是这样的

Rdd = [(0, a, aa, aaa), (1, b, bb, bbb), (2, c, cc, ccc), (3, d, dd, ddd)]

谢谢

为了完整起见,这里是连接方法:

 Rdd_1.join(Rdd_2).join(Rdd_3).map(lambda (x,y): (x,)+y[0]+(y[1],))
在效率方面,如果您在键上显式地划分每个
rdd
(使用
partitionBy
),那么所有要连接的元组将位于同一个分区中,这将使它更高效