有条件地加入并映射2个RDD

时间:2017-03-07 17:17:54

标签: scala apache-spark rdd

我有两个需要加入的RDD

val rdd1 = RDD[(v_id, inputObject1)]

其中v_id是唯一ID

和inputObject1具有以下字段

g_id, p_id, timestamp=t1

现在我有另一个RDD

val rdd2 = RDD[(g_id, inputObject2)]

其中inputObject2具有以下字段

p_id, timestamp=t2, e_id

现在我想在以下条件下加入这2个RDD

  • 如果g_id和p_id相同且| t1-t2 | < 30分钟
  • 否则,如果g_id相同且| t1 - t2 | < 30分钟

因此,如果不满足第一个条件,则第二个条件是回退。我的最终输出应该是这个

val resuldRDD = RDD[(v_id, inputObject11)]

其中inputObject11 = inputObject1 +如果满足条件,则从第二个RDD添加e_id。

所以字段将是

g_id, p_id, e_id, timestamp=t1

1 个答案:

答案 0 :(得分:0)