通过火花中的其他RDD [两个RDD具有不同类型]来过滤RDD

时间:2016-02-23 08:06:18

标签: scala apache-spark

我有2个RDD:

Rdd1:(String,CompactBuffer)
 (3,CompactBuffer(3, 5, 6, 7, 8, 9))
 (4,CompactBuffer(2, 4))
 (1,CompactBuffer(1, 4, 5, 7, 8, 9))
 (5,CompactBuffer(1, 8)) 
 (2,CompactBuffer(1, 2, 3, 4, 6, 8, 9))



Rdd2:(String,Long)
 (1,6) 
 (2,7) 
 (3,6) 

我想用Rdd2的键过滤Rdd1,即只保存具有相同键的条目。假设Rdd2有3个(键,值)对,意味着3个键,即1,2和3.所以我只需要Rdd1中的(键,值)对,它们在Rdd2中保持相同的键。所以预期的结果如下:

Rdd3:(String, CompactBuffer)
(3,CompactBuffer(3, 5, 6, 7, 8, 9)) 
(1,CompactBuffer(1, 4, 5, 7, 8, 9)) 
(2,CompactBuffer(1, 2, 3, 4, 6, 8, 9)) 

1 个答案:

答案 0 :(得分:3)

Rdd1.join(Rdd2).map(x => x._1 -> x._2._1)