如何读取 csv 文件作为键值对的映射 [英] How to read a csv file as Map for key value pair

查看:52
本文介绍了如何读取 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆