2016-11-17 66 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]])或者通过使用过滤器而不是加入来获得你想要的结果