2016-11-17 37 views
0

值我有兩個RDD rdd1rdd2星火RDD1集和RDD2做內部聯接,新價值在RDD1集

rdd1 = [(key1,value11), (key2,value12)] 
rdd2 = [(key1, value21), (key3, value22)] 

現在我要做一個內有rdd1rdd2和示例結果加入這樣

rdd_join = [(key1,value11)] 

在SQL它會是這樣的

SELECT rdd1.key,rdd1.value 
FROM rdd1 
INNER JOIN rdd2 
WHERE rdd1.key = rdd2.key 

有什麼想法?

+0

如果你從你的RDD創建數據框,你可以簡單地執行'val joined = df1.join(df2,$「 df1Key「=== $」df2Key「,」inner「)' –

回答

0
joined_rdd = rdd1.join(rdd2) 

但是,這不會給你你到底想要什麼,但

[joined_rdd = [(key1, (value11, value21))] 

你上面的例子是不是一個加入。你可以通過joined_rdd.map(lambda l: [l[0], l[1][0]])或者通過使用過濾器而不是加入來獲得你想要的結果