通过scala中的其他RDD向RDD添加多个列

时间:2016-09-27 16:54:23

标签: scala join rdd

我有4个具有相同键但不同列的RDD。我想要附上它们。我想在执行一个fullOuterJoin因为,即使id不匹配,我想要完整的寄存器。

使用数据帧可能会更容易(考虑到不丢失寄存器)?但到目前为止,我有以下代码:

var final_agg = rdd_agg_1.fullOuterJoin(rdd_agg_2).fullOuterJoin(rdd_agg_2).fullOuterJoin(rdd_agg_4).map {
    case (id, // TODO this case to format the resulting rdd)
}

如果我有这个rdds:

rdd1              rdd2          rdd3          rdd4
id  field1    id  field2      id  field3     id  field4
 1    2        1    2          1    2         2    3
 2    5        5    1

因此产生的rdd将具有以下形式:

     rdd
id        field1       field2        field3     field4
 1           2            2            2          3
 2           5            -            -          -
 5           -            1            -          -  

编辑:

这是我要在案例中格式化的RDD:

     org.apache.spark.rdd.RDD[(String, (Option[(Option[(Option[Int], Option[Int])], Option[Int])], Option[String]))]

0 个答案:

没有答案