arrays - 如何将csv文件读入scala中的数组数组

标签 arrays scala csv matrix multidimensional-array

我正在尝试读取一个 csv 文件并将其作为 double 数组的数组返回( Array[Array[Double]] )。如何逐行读取文件并立即打印出来很清楚,但不知道如何将其存储在二维数组中。

def readCSV() : Array[Array[Double]] = {
    val bufferedSource = io.Source.fromFile("/testData.csv")
    var matrix :Array[Array[Double]] = null
    for (line <- bufferedSource.getLines) {
        val cols = line.split(",").map(_.trim)
        matrix = matrix :+ cols
    }
    bufferedSource.close
    return matrix
}

有一些类型问题,然后意识到我没有做我认为我在做的事情。任何将我指向正确轨道的帮助将不胜感激。

最佳答案

看来你的问题已经回答了。因此,作为旁注,您可以像这样以更粗暴的方式编写代码:

def readCSV() : Array[Array[Double]] = {
  io.Source.fromFile("/testData.csv")
    .getLines()
    .map(_.split(",").map(_.trim.toDouble))
    .toArray
}

关于arrays - 如何将csv文件读入scala中的数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32055496/

相关文章:

scala - 查找索引*哪里*

python - 用 csv.DictWriter 写入部分行?

csv - 使用spark访问放置在hdfs中的csv文件

php - 使用 CakePHPs find 返回匹配条件数组的所有记录

c++ - 循环通过 std::vector 从 std::string 数组中查找匹配项,更简单的方法吗?

scala - 与 IO monads 的普通旧特征相比,Free monads 有什么优势?

java - 被 "Scala in Depth"选项示例混淆

使用 write.csv 导出数据帧时,用空格 (""或点 ("."替换缺失值(NA)

java - 组合二维数组

java - 找出 10 个线程的最大值