在Scala中,如何读取第一行中带有标题的简单CSV文件?

Iva*_*van 32 csv file-io parsing scala

任务是通过简单的CSV文件中的关键字段值查找特定字段(按行数排列)值(只是逗号分隔符,没有字段括号引号,字段内没有逗号),有标题在它的第一行.

用户uynhjl给出了一个示例(但使用不同的字符作为分隔符):


val src = Source.fromFile("/etc/passwd")
val iter = src.getLines().map(_.split(":"))
// print the uid for Guest
iter.find(_(0) == "Guest") foreach (a => println(a(2)))
// the rest of iter is not processed
src.close()

在这种情况下的问题是如何跳过解析标题行?

Tra*_*own 31

你可以使用drop:

val iter = src.getLines().drop(1).map(_.split(":"))
Run Code Online (Sandbox Code Playgroud)

文档:

def drop (n: Int) : Iterator[A]:推进此迭代器超过前 n个元素,或迭代器的长度,以较小者为准.


Rob*_*vey 15

这是Scala中CSV阅读器.让人惊讶.

或者,您可以在Java中查找CSV阅读器,并从Scala中调用它.

正确解析CSV文件并非易事.逃脱报价,对于初学者.