【发布时间】:2016-02-11 04:26:12
【问题描述】:
我有这个文件,其中包含 A、B、C 三种类型的数据。我只想根据某些条件用其他 RDD(称为 RDD2)的元素替换此 RDD 的 A 类元素(称为 RDD1)。RDD1 和 RDD2 有一些共同的字符串。
文件结构[RDD[String]]
1 A 2
2 B 12 13 4
2 C 67 29
2 A 5
RDD2 [RDD[行]]
1 A 2 5 6
2 A 5 7 8
我正在过滤第一个 RDD 并向其附加一些字符串以创建 RDD2。
我知道 RDD 是不可变的,但由于 map 函数不接受参数。我想知道是否有办法实现这一点。
编辑:(考虑到下面的 cmets)
样本输出 RDD[Any]
1 A 2 5 6
2 B 12 13 4
2 C 67 29
2 A 5 7 8
【问题讨论】:
-
你能给出这个示例输出吗?
-
@MukrramRahman '1 A 2 5 6' '2 B 12 13 4' '2 C 67 29' '2 A 5 7 8'
-
你的 RDD 的类型是什么,我的意思是它是 RDD[Row] 或 RDD[String] 还是别的什么?
-
RDD1 属于 RDD[string] 类型,RDD2 属于 RDD[row] 类型,我想将输出 RDD 导出到文本文件中。我认为一旦我们有了最终 RDD(任何类型)。
-
目前我能想到的唯一解决方案是对 RDD2 和 RDD3 执行联合操作(过滤掉 B 和 C 类型)。
标签: scala apache-spark rdd