我有两个文本文件:color.txt
和shades.txt
具有以下值:
color.txt
1 | RED
2 | GREEN
3 | BLUE
shades.txt
1 | 1 | dark red
2 | 1 | light red
3 | 2 | dark green
4 | 3 | light blue
5 | 3 | sky blue
如何使用RDD加入这两个表。 shades.txt
的第二列是来自color.txt
的密钥。
到目前为止我做了什么
var colorRdd = sc.textFile("/pathto/color.txt")
var shadesRdd = sc.textFile("/pathto/shaes.txt")
var colorPairRdd = colorRdd.map{ case (colorkey, colorname) => ((colorkey), colorname)}
有了这个我得到一个错误:
found : (T1, T2)
required: String
答案 0 :(得分:1)
rdd= sc.textFile("file.txt")
RDD[String]
)。 例如,下面的map函数返回按分隔符分割每一行。
rdd.map(x => x.split("\\|"))
PairRDD
。从数组字符串构建对:rdd.map(a => (a[0],a[1]))
可以组合和重构步骤2和3以获得更好的代码。
rdd1.join(rdd2).map (process here )