如何使用Scala在CSV文件中添加数据? [英] How to add data in csv file using scala?

查看:84
本文介绍了如何使用Scala在CSV文件中添加数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm a beginner to learn the scala right now. And I'm testing some simulation with using CSV file. But there are no proper advises in google, and I want to ask as like below.

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

  1. How to add the additional data in existing CSV file using SCALA? (if the CSV file's locations is "/users/hello.csv")

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

How to get the average and sum in CSV file sheet using SCALA? (I want to try to log in SCALA by using CMD not SPARK)

推荐答案

简单的csv读/写示例:

The simple csv read/write example:

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

这篇关于如何使用Scala在CSV文件中添加数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆