首页 > 解决方案 > 如何将文本文件字符串分配给字典值到一个变量中,以及如何通过在 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

标签: scalaapache-sparkapache-spark-sqlscala-collections

解决方案


由于您的文件是 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

推荐阅读