【发布时间】:2016-10-24 11:16:06
【问题描述】:
我有两个 RDD[Array[String]],我们称它们为 rdd1 和 rdd2。 我将创建一个新的 RDD,其中仅包含 rdd2 的条目,而不是 rdd1 (基于键)。 我通过 Intellij 在 Scala 上使用 Spark。
我将 rdd1 和 rdd2 按一个键分组(我将只比较两个 rdds 的键):
val rdd1Grouped = rdd1.groupBy(line => line(0))
val rdd2Grouped = rdd2.groupBy(line => line(0))
然后,我用了leftOuterJoin:
val output = rdd1Grouped.leftOuterJoin(rdd2Grouped).collect {
case (k, (v, None)) => (k, v)
}
但这似乎没有给出正确的结果。
它有什么问题?有什么建议吗?
RDDS 示例(每一行都是一个 Array[String],ofc):
rdd1 rdd2 output (in some form)
1,18/6/2016 2,9/6/2016 2,9/6/2016
1,18/6/2016 2,9/6/2016
1,18/6/2016 2,9/6/2016
1,18/6/2016 2,9/6/2016
1,18/6/2016 1,20/6/2016
3,18/6/2016 1,20/6/2016
3,18/6/2016 1,20/6/2016
3,18/6/2016
3,18/6/2016
3,18/6/2016
在这种情况下,我只想添加条目“2,9/6/2016”,因为键“2”不在 rdd1 中。
【问题讨论】:
标签: scala apache-spark compare rdd