【发布时间】:2017-03-07 17:17:53
【问题描述】:
我有 2 个 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
现在我想在以下条件下加入这两个 RDD
- 如果g_id 和p_id 相同并且|t1-t2|
- 否则,如果 g_id 相同且 |t1 - t2|
因此,如果第一个条件不满足,则第二个条件是回退。我的最终输出应该是这样的
val resuldRDD = RDD[(v_id, inputObject11)]
其中 inputObject11 = inputObject1 + 如果满足条件,则从第二个 RDD 添加 e_id。
所以字段将是
g_id, p_id, e_id, timestamp=t1
【问题讨论】:
-
不确定您是否可以有条件加入。您可以通过 id 加入,然后根据任何条件进行过滤。
标签: scala apache-spark rdd