gpt4 book ai didi

java - 如何使用 scala 在读取 csv 文件中创建数据透视表

转载 作者:行者123 更新时间:2023-12-02 11:39:31 24 4
gpt4 key购买 nike

我遇到了问题。我将创建代码 scala 读取 csv 文件,而不是在数据透视表中创建结果。任何解决方案..??

文件 csv:

Div,Person
A,Excel
A,Job
A,Bob
B,Alice
B,Anna

输出:

Div|Person
A|Excel,Job,Bob
B|Alice,Anna

我的代码:

object Tes {

def main(args: Array[String]): Unit = {

var result : List[Person] = Nil
var strings = StringBuilder.newBuilder

val bufferedSource = io.Source.fromFile("src/main/resources/config/person.csv")
for (line <- bufferedSource.getLines) {
val cols = line.split(",")
val div = cols.apply(0)
val name = cols.apply(1)

}
bufferedSource.close
}

}

型号:

case class Person(div: String, person: String)

如何创建类似输出的 scala 代码..?谢谢。

最佳答案

你可以这样做

val source = scala.io.Source.fromFile("src/main/resources/config/person.csv")

source.getLines()
.map(_.split(","))
.foldLeft(Map.empty[String, Seq[String]])({
case (map, Array(div, name)) =>
map + (div -> (map.get(div) match {
case None => Seq(name)
case Some(seq) => seq :+ name
}))
})
.foreach({ case (div, names) => println(div + "|" + names.mkString(",")) })

source.close()

如果你想提高效率,你可以在折叠期间使用可变集合。

关于java - 如何使用 scala 在读取 csv 文件中创建数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48683153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com