如何将文本文件字符串分配到一个变量中的字典值,以及如何通过在spark scala中传递键来提取值?

如何将文本文件字符串分配到一个变量中的字典值,以及如何通过在spark scala中传递键来提取值?,scala,apache-spark,apache-spark-sql,scala-collections,Scala,Apache Spark,Apache Spark Sql,Scala Collections,我正在从本地文件系统读取一个文本文件。我想将字符串转换为字典(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

我正在从本地文件系统读取一个文本文件。我想将字符串转换为字典(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 connector读取文件,然后提取键和列:

 val df = session.read.json("path to file")
 val keys = df.columns
 val values = df.collect().last.toSeq
 val map = keys.zip(values).toMap

你使用的是什么版本的spark?spark 2.3版本文件大小是多少?大小是100 MB。对不起,我忘了告诉你一件事。outputDf=outputDf.withColumn(“Value”,getProductValuebyPassingId(outputDf.col(“Key”))。具有上述所有代码的getProductValuebyPassingId方法。传递键列,并从json文件中获取值。