我有两个rdd
rdd1 rdd2
1,abc 3,asd
2,edc 4,qwe
3,wer 5,axc
4,ert
5,tyu
6,sdf
7,ghj比较两个rdd,一旦与id匹配,将使用从rdd2到rdd1的值进行更新。我知道rdd是不变的,所以我认为新的rdd将会被创建。输出的rdd将如下所示
output rdd
1,abc
2,edc
3,asd
4,qwe
5,axc
6,sdf
7,ghj这是一个基本的东西,但是,我是一个新的火花和scala和尝试的东西。
发布于 2016-04-24 00:12:16
使用leftOuterJoin按键匹配两个RDD,然后使用map选择“新值”(来自rdd2) (如果存在),否则保留“旧”值:
// sample data:
val rdd1 = sc.parallelize(Seq((1, "aaa"), (2, "bbb"), (3, "ccc")))
val rdd2 = sc.parallelize(Seq((3, "333"), (4, "444"), (5, "555")))
val result = rdd1.leftOuterJoin(rdd2).map {
case (key, (oldV, maybeNewV)) => (key, maybeNewV.getOrElse(oldV))
}https://stackoverflow.com/questions/36813071
复制相似问题