我有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]))]