在Scala中读取大型csv文件的函数样式
我不熟悉函数式编程和scala,所以我的问题似乎有点原始 是否有一种使用函数式读取scala中csv文件的特定方法?另外,如何使用函数式在scala中组合2个csv文件来执行内部联接在Scala中读取大型csv文件的函数样式,scala,functional-programming,Scala,Functional Programming,我不熟悉函数式编程和scala,所以我的问题似乎有点原始 是否有一种使用函数式读取scala中csv文件的特定方法?另外,如何使用函数式在scala中组合2个csv文件来执行内部联接 我知道spark,通常使用data frame,但对scala没有任何概念,在google上搜索也很困难,因为我对它不太了解。另外,如果有人知道scala函数式编程的好链接,那将是很大的帮助。这个问题确实太广泛了 是否有一种特定的方法可以使用函数读取scala中的csv文件 风格 到目前为止,我还不知道有哪条国王之
我知道spark,通常使用data frame,但对scala没有任何概念,在google上搜索也很困难,因为我对它不太了解。另外,如果有人知道scala函数式编程的好链接,那将是很大的帮助。这个问题确实太广泛了 是否有一种特定的方法可以使用函数读取scala中的csv文件 风格 到目前为止,我还不知道有哪条国王之路可以让CSV完全不受麻烦地解析。 CSV解析包括
- 逐行检查输入
- 了解,如何处理(可选)标题
- 根据CSV规范准确分析每一行
- 将行部件转换为业务对象
opencsv
)将每一行拆分为多个部分阅读Paul Chiusano,Rúnar Bjarnason的“Scala中的函数编程”一些来自一些聪明人的例子——感谢Cell4和jacks的Emicare。这是否回答了你的问题?谢谢,很抱歉问这么宽泛的问题。但在scala中读取CSV文件时,函数样式是如何工作的呢?有什么例子可以参考吗?好的,我添加了一个例子
case class Person(name: String, street: String)
val lineParser = new CSVParserBuilder().withSeparator(',').build()
val lines: Iterator[String] = Source.fromInputStream(new FileInputStream("file.csv")).getLines()
val parsedObjects: Iterator[Person] = lines.map(line => {
val parts: Array[String] = lineParser.parseLine(line)
Person(parts(0), parts(1))
})