在Scala中读取大型csv文件的功能样式

我是函数式编程和scala的新手,所以我的问题似乎有些原始。

有没有使用函数样式在Scala中读取csv文件的特定方法?另外,如何使用函数样式在scala中合并2个csv文件的内部联接?

我知道spark,通常使用数据框,但是在scala中没有任何想法,并且发现它也很难在google上搜索,因为对此了解不多。另外,如果任何人都知道scala的功能样式编程的良好链接,那将是很大的帮助。

Simpadjo

这个问题确实太广泛了。

有没有使用函数样式在Scala中读取csv文件的特定方法?

到目前为止,我还不知道国王解析CSV完全没有麻烦的道路。CSV解析包括

  • 逐行输入
  • 理解,如何处理(可选)标头
  • 根据CSV规范准确地解析每一行
  • 将线零件变成业务对象

我建议

  1. 将您的输入变成 Iterator[String]
  2. 使用您选择的库将每行分成几部分(例如opencsv
  3. 从线零件手动创建所需的域对象

这是一个简单的示例(忽略错误处理和潜在的标头)

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))
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Android中读取大型.csv文件

来自分类Dev

在Java中读取大型CSV

来自分类Dev

在scala中读取csv文件(数字类型)

来自分类Dev

双重读取大型CSV文件

来自分类Dev

提高读取大型CSV文件的效率

来自分类Dev

如何读取大型csv文件的特定行

来自分类Dev

读取大型CSV文件的IIS 7.5问题

来自分类Dev

读取存储在sas中的大型txt文件

来自分类Dev

在Spark中读取CSV文件时出错-Scala

来自分类Dev

Python生成器读取大型CSV文件

来自分类Dev

读取大型csv文件,python,pandas的随机行

来自分类Dev

使用Dask高效地读取大型csv文件

来自分类Dev

如何通过Scala中的自定义功能对大型文本文件中的行进行排序?

来自分类Dev

使用Pandas从CSV文件读取功能名称

来自分类Dev

将读取文件的架构存储到Spark Scala中的csv文件中

来自分类Dev

在Rails应用程序中读取大型csv文件会占用大量内存-减少内存消耗的策略?

来自分类Dev

bash中的C ++文件读取样式

来自分类Dev

在Go中读取CSV文件

来自分类Dev

在vbscript中读取csv文件

来自分类Dev

在Perl中读取CSV文件

来自分类Dev

在C中读取.CSV文件

来自分类Dev

在MFC中读取.csv文件

来自分类Dev

从包中读取CSV文件

来自分类Dev

读取.csv文件中的几行

来自分类Dev

在 Cplex 中读取 CSV 文件

来自分类Dev

导出大型CSV文件

来自分类Dev

导入大型CSV文件

来自分类Dev

如何在R中读取大型(〜20 GB)xml文件?

来自分类Dev

在Erlang中读取大型JSON文件的最佳方法是什么?