现在我的文件包含
1: 3 4
2: 1 3 5
我想进入
1: 3
1: 4
2: 1
2: 3
2: 5
它就像是groupByKey的反向版本 谁有想法如何解决? 感谢
答案 0 :(得分:1)
您可以使用flatMapValues
val rdd = sc.parallelize(Seq(
(1, Seq(4, 5)),
(2, Seq(1, 3, 5))
))
rdd.flatMapValues(x => x).collect
// res1: Array[(Int, Int)] = Array((1,4), (1,5), (2,1), (2,3), (2,5))
如果数据位于文本文件中,请先创建RDD。例如:
val rdd = sc.textFile("/path/to/file").
map(_.split(": ")).
map{ case Array(x, y) => (x, y.split(" ")) }