Я очень новичок в 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, с которым я работаю, не содержит вложенных запятых или экранированных символов.