我很新手Scala,但从我读到的内容来看,它似乎是处理我正在开发的项目的理想语言。
我有一个非常大的CSV文件,它看起来像这样:
INDEX, CITY, COST
7 , London, 500
7 , Paris, 200
11 , Rome, 300
11 , New York, 100
11 , Madrid, 7
我希望能够读取CSV文件,并一次一个索引地生成所有具有相同索引的元素列表。从上面的示例中,我想要得到一个包含以下行的列表:
7, London, 500
7, Paris, 200
并且第二个列表包含行:
11, Rome, 300
11, New York, 100
11, Madrid, 7
在CSV文件中读取数据非常简单:
val iter = src.getLines().drop(1).map(_.split(",")) //from SO :)
然而,我正在苦苦寻找一种干净的方法来生成我的子列表。在我看来,应该有一种漂亮、简洁的方式来使用Scala实现这一点。我特别希望数据能够延迟加载,因为数据量很大。你能建议我如何实现吗?
所有的数据都按索引顺序排列(尽管索引不是连续的),我正在处理的CSV文件不包含任何嵌套逗号或转义符。