如何在pyspark中加入多个RDD而不转换为DF

gee*_*000 1 join rdd pyspark

我有三个 RDD (x,y,z),我想加入。所有三个 RDD 的第一个元素是将用于连接的键。

我知道如何加入两个:

rdd1 = x.map(lambda r: (r[0], r[1:]))
rdd2 = y.map(lambda r: (r[0], r[1:]))
rdd1_rdd2 = rdd1.join(rdd2)
Run Code Online (Sandbox Code Playgroud)

如何将第三个 RDD z 加入到 rdd1_rdd2 中?

小智 5

只需添加另一个连接并展平结果:

rdd1_rdd2.join(rdd3).mapValues(lambda x: x[0] + (x[1], ))
Run Code Online (Sandbox Code Playgroud)