我的数据如下
3,3,2
4,1,3
1,1,2
1,3,0
0,6,3
2,2,3
0,2,1
0,5,2
我希望能够构建一个
形式的元组(2,Long.MAX_VALUE,((3,2)(1,1)(0,5))
(3,Long.MAX_VALUE,((4,1)(0,6)(2,2))
(0,Long.MAX_VALUE,((1,3))
(1,Long.MAX_VALUE,((0,2))
我从文本文件导入数据并使用映射器构成
(3,(2,3))
(4,(3,1))
等等
我尝试使用地图将所有这些转换为表格
(0,Long.MAX_VALUE,(1,3)
然后我使用groupBy(x => (x._1,x._2))
但无法形成这些元组。我做错了什么
我正在获取格式
的元组(0,Long.MAX_VALUE,((0,Long.MAX_VALUE,1,3))
答案 0 :(得分:0)
您可以执行以下操作以获得预期的输出
val rdd = sc.textFile("path to your text file")
val rdd2 = rdd.map(line => line.split(","))
.groupBy(array => array(2))
.mapValues(arrays => arrays.map(arr => (arr(0), arr(1))))
.map(a => (a._1, Long.MaxValue, a._2))
rdd2.foreach(println)
应打印
(0,9223372036854775807,List((1,3)))
(2,9223372036854775807,List((3,3), (1,1), (0,5)))
(3,9223372036854775807,List((4,1), (0,6), (2,2)))
(1,9223372036854775807,List((0,2)))
我希望答案很有帮助,你应该对如何进行有一般的了解。 :)