【问题标题】:How to add data in csv file using scala? [closed]如何使用scala在csv文件中添加数据? [关闭]
【发布时间】:2020-07-05 06:29:32
【问题描述】:

我现在是学习 scala 的初学者。 我正在使用 CSV 文件测试一些模拟。 但是谷歌没有适当的建议,我想问如下。

  1. 如何使用 SCALA 在现有 CSV 文件中添加附加数据? (如果 CSV 文件的位置是“/users/hello.csv”)

  2. 如何使用 SCALA 获取 CSV 文件表中的平均值和总和? (我想尝试使用 CMD 而不是 SPARK 登录 SCALA)

【问题讨论】:

  • 你尝试了吗?哪个代码示例有问题?
  • 谢谢!我只是初学者,我试图在网上搜索,但我找不到用scala修改csv文件的方法。我会尝试你的评论,我会了解它是如何处理的)谢谢

标签: scala csv


【解决方案1】:

简单的 csv 读/写示例:

import java.io.{FileReader, FileWriter}
import java.nio.file.{Files, Paths}
import scala.collection.JavaConverters._

val data = Seq(
  Seq("col1_data1", "col2_data1", "col3_data1", "col4_data1", 0),
  Seq("col1_data2", "col2_data2", "col3_data2", "col4_data2", 10),
  Seq("col1_data3", "col2_data3", "col3_data3", "col4_data3", 14),
  Seq("col1_data4", "col2_data4", "col3_data4", "col4_data4", 10),
  Seq("col1_data5", "col2_data5", "col3_data5", "col4_data5", 7),
  Seq("col1_data6", "col2_data6", "col3_data6", "col4_data6", 23)
)

val fileName = "data.csv"
val ColumnSeparator = ","
val writer = new FileWriter(fileName, true)
try {
  data.foreach{
    line =>
      writer.write(s"${line.map(_.toString).mkString(ColumnSeparator)}\n")
  }
} finally {
  writer.flush()
  writer.close()
}

val reader = new FileReader(fileName)
val lastColValues = try {
  Files.lines(Paths.get(fileName))
    .iterator()
    .asScala
    .toSeq
    .map(_.split(ColumnSeparator).last.toInt)
} finally {
  reader.close()
}
val sumLastCol = lastColValues.sum
println(sumLastCol) // sum = 64
println(sumLastCol.toDouble / lastColValues.length) // mean = 10.666666666666666

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 2018-04-16
    • 2019-03-08
    • 2019-07-25
    相关资源
    最近更新 更多