问题描述
我通过链接连接加入了三个 RDD 的 spark:
joined_rdds = rdd1.join(rdd2).join(rdd3)
joined_rdds.collect() 的输出是:
[(key,(([list1],[list2]),([list3]))),(key,...]
我如何将该输出转换为:
[(key,([list1],[list2],[list3])),([list1,] [list2],...]
?
解决方法
我想出了一个解决方法,但这对于更大的连接来说并不理想:
joined_rdds = rdd1.fullOuterJoin(rdd2).fullOuterJoin(rdd3)
combined_tuples= joined_rdds.map(lambda x: (x[0],(x[1][0][0],x[1][0][1],x[1][1])))