我有两个看起来像这样的RDD: - RDD1元素看起来像这样[123,456,789],RDD2元素看起来像这样[456,999]。现在我需要基于456组合/连接这两个RDD,这是RDD1中的第二个元素和RDD2中的第一个元素。最终输出看起来像这样: - [123,456,789,999]。有没有办法可以做到这一点,或者密钥需要在加入的第一位? 提前感谢您的时间。
答案 0 :(得分:0)
您可以将RDD转换为Dataframe,然后执行简单的连接,如下所示。
rdd1 = sc.parallelize([(123, 456, 789)])
rdd2 = sc.parallelize([(456, 999)])
df1 = rdd1.toDF()
df2 = rdd2.toDF()
result = df1.join(df2, df1['_2'] == df2['_1'])
result.rdd.map(lambda x: (x[0],x[1],x[2],x[4])).collect()
[(123, 456, 789, 999)]