scala - 如何将文本文件字符串分配给字典值到一个变量中,以及如何通过在 spark scala 中传递键来提取值?
问题描述
我正在从本地文件系统读取文本文件。我想将 String 转换为 Dictionary(MAP) 并将其存储到一个变量中。并希望通过传递密钥来提取价值。我是火花斯卡拉的新手。
scala>val file = sc.textFile("file:///test/prod_details.txt");
scala> file.foreach(println)
{"00000006-0000-0000": "AWS", "00000009-0000-0000": "JIRA", "00000010-0000-0000-0000": "BigData", "00000011-0000-0000-0000": "CVS"}
scala> val rowRDD=file.map(_.split(","))
预期结果是:
如果我将密钥传递为“00000010-0000-0000-0000”,
该函数应将值返回为 BigData
解决方案
由于您的文件是 json 格式并且不大,您可以使用 spark json 连接器读取文件,然后提取键和列:
val df = session.read.json("path to file")
val keys = df.columns
val values = df.collect().last.toSeq
val map = keys.zip(values).toMap
推荐阅读
- javascript - 单选按钮同名,无选择并提交
- python - 无法从 html 页面正确读取和格式化日期列
- python-3.x - 一个函数没有在循环中重新运行,但我没有收到错误?
- python-3.x - 通过 pip3 安装 pycairo 时遇到问题
- aws-glue - 通过 AWS Glue Python 脚本连接到 Postgres
- angular - 具有多个模块和 Sharepoint SPFX 的 Angular 5
- kotlin - 如何在 Ktor 内部检查 Netty 是否实际启动?
- qt - Qt Creator - 如何使用静态参数部署应用程序
- time-complexity - 如果我可以将代码循环次数减少一半,时间复杂度是否有任何变化
- angular - 继承现有 html 元素的新组件