如何读取 csv 文件作为键值对的映射 [英] How to read a csv file as Map for key value pair
本文介绍了如何读取 csv 文件作为键值对的映射的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 csv 文件中有数据,例如:
I have data in a csv file such as:
value,key
A,Name
B,Name
C,Name
24,Age
25,Age
20,Age
M,Gender
F,Gender
我想解析它以生成以下地图:
I would like to parse it to produce the following map:
Map(Name -> List(A, B, C), Age -> List(24,25,20), Gender -> List(M,F))
推荐答案
这里有一个可能:
import scala.io.Source
Source.fromFile("my/path")
.getLines()
.drop(1) // Drop the header (first line)
.map(_.split(",")) // Split by ",": List(Array(A, Name), Array(B, Name), Array(C, Name), ...
.groupBy(_(1)) // group by value: Map(Age -> List(Array(24, Age), Array(25, Age), Array(20, Age)), ...
.map{ case (key, values) => (key, values.map(_(0))) } // final format: Map(Age -> List(24, 25, 20), ...
给出:
Map(Age -> List(24, 25, 20), Name -> List(A, B, C), Gender -> List(M, F))
这篇关于如何读取 csv 文件作为键值对的映射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文