我在名为windData
的变量中有一些数据,信息如下。
ListBuffer((2001-01-01T00:00:00.000+01:00,578,WIND projekt GmbH),
(2001-01-01T01:00:00.000+01:00,420,WIND projekt GmbH),....)
我需要将此数据写入csv文件。 我编写的代码
def printToFile(f: java.io.File)(op: java.io.PrintWriter => Unit) {
val p = new java.io.PrintWriter(f)
try { op(p) } finally { p.close() }
}
printToFile(new File("/Users/krishna/Experiment/Internship/wind.csv")) { p =>
windData.foreach(p.println)
}
输出
(2001-01-01T00:00:00.000+01:00,578,WIND projekt GmbH)
(2001-01-01T01:00:00.000+01:00,420,WIND projekt GmbH)
预期产出:
2001-01-01T00:00:00.000+01:00,578,WIND projekt GmbH
2001-01-01T01:00:00.000+01:00,420,WIND projekt GmbH
如何在一行之前和之后摆脱元组。
答案 0 :(得分:2)
这适用于任何长度的元组列表 - 使用productIterator.mkString(",")
将元组序列化为字符串而不显式访问每个字段:
printToFile(new File("/tmp/wind.csv")) { p =>
windData.foreach(tuple => p.println(tuple.productIterator.mkString(",")))
}
答案 1 :(得分:0)
以下是一个例子:
scala> val d = ListBuffer((1,2,3),(4,5,6))
d: scala.collection.mutable.ListBuffer[(Int, Int, Int)] = ListBuffer((1,2,3), (4,5,6))
scala> d.foreach(x => print(x._1 + "," + x._2 + "," + x._3 + "\n"))
结果:
1,2,3
4,5,6
答案 2 :(得分:0)
你可以做到
windData.foreach { tuple =>
println(tuple._1)
println(tuple._2)
}