有条件地加入和映射 2 个 RDD
Posted
技术标签:
【中文标题】有条件地加入和映射 2 个 RDD【英文标题】:Join and map 2 RDDs conditionally 【发布时间】: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 加入,然后根据任何条件进行过滤。 【参考方案1】:这不可能:join
操作是按键
https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.PairRDDFunctions
【讨论】:
以上是关于有条件地加入和映射 2 个 RDD的主要内容,如果未能解决你的问题,请参考以下文章