第一列为" key"然后添加其余每列的值
实际上源数据文件多了22列仅作为示例: 源文件(列分隔符是一个空格):
a 1 2 3
b 1 2 3
a 2 3 4
b 3 4 5
期望的输出:
a 3 5 7
b 4 6 8
val data = scala.io.Source.fromFile(" /root/1.txt")。getLines
data.toList
下一步怎么办? THX
答案 0 :(得分:1)
解决此任务的一般算法:
使用普通的Scala:
val data = List("a 1 2 3", "b 1 2 3", "a 2 3 4", "b 3 4 5")
data.map(_.split(" ")) // 1
.groupBy(_.head) // 2
.mapValues(
_.map(
_.tail // 3
.map(_.toInt)) // 4
.reduce((a1, a2) => a1.zip(a2).map(tuple => tuple._1 + tuple._2))) // 5
.foreach(pair => println(s"${pair._1} ${pair._2.mkString(" ")}")) // 6