在 Scala 中,如何读取第一行包含标题的简单 CSV 文件?
任务是在一个简单的 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()
这种情况下的问题是如何跳过解析的标题行?
The task is to look for a specific field (by it's number in line) value by a key field value in a simple CSV file (just commas as separators, no field-enclosing quotes, never a comma inside a field), having a header in its first line.
User uynhjl has given an example (but with a different character as a separator):
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()
the question in this case is how to skip a header line from parsing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以只使用
drop
:来自 文档:
You can just use
drop
:From the documentation:
这是一个 Scala 中的 CSV 阅读器。哎呀。
或者,您可以查找 Java 中的 CSV 阅读器,并从 Scala 中调用它。
正确解析 CSV 文件并不是一件小事。首先,转义引号。
Here's a CSV reader in Scala. Yikes.
Alternatively, you can look for a CSV reader in Java, and call that from Scala.
Parsing CSV files properly is not a trivial matter. Escaping quotes, for starters.
首先,我使用
take(1)
读取标题行,然后其余行已经在src
迭代器中。这对我来说效果很好。First I read the header line using
take(1)
, and then the remaining lines are already insrc
iterator. This works fine for me.