【发布时间】:2018-09-11 12:27:32
【问题描述】:
我正在使用 Scala 编写 Spark 应用程序。我有以下两个 RDD:
(a, 1, some_values1)
(b, 1, some_values2)
(c, 1, some_values3)
和
(a, 2, some_values1)
(b, 2, some_values2)
(a, 3, some_values1)
(b, 3, some_values2)
我正在尝试得到这个输出:
(a, 1, 2, computed_values1)
(b, 1, 2, computed_values2)
(c, 1, 2, None)
(a, 1, 3, computed_values1)
(b, 1, 3, computed_values2)
(c, 1, 3, None)
因此,这里的字母用于将第一个 RDD 中的每条记录与第二个 RDD 匹配。我尝试使用join 方法,但没有记录c。我怎样才能做到这一点?
更新
另一个例子:
(a, 1, some_values1)
(b, 1, some_values2)
(c, 1, some_values3)
和
(a, 2, some_values1)
(b, 2, some_values2)
(a, 3, some_values1)
(b, 3, some_values2)
(c, 3, some_values2)
我正在尝试得到这个输出:
(a, 1, 2, computed_values1)
(b, 1, 2, computed_values2)
(c, 1, 2, None)
(a, 1, 3, computed_values1)
(b, 1, 3, computed_values2)
(c, 1, 3, computed_values3)
【问题讨论】:
-
Join "outer" 可用于保留两个数据帧中的行,这里有一些信息:stackoverflow.com/questions/45990633/…
-
@pasha701 是的,我知道,实际上我尝试使用外连接来实现,但没有成功。
标签: scala apache-spark