2016-07-08 106 views
8

我想將下面的字符串變量轉換爲火花上的數據幀。如何將JSON字符串轉換爲火花上的數據幀

val jsonStr = "{ "metadata": { "key": 84896, "value": 54 }}" 

我知道如何從json文件創建數據框。

sqlContext.read.json("file.json") 

,但我不知道如何創建一個從字符串變量數據幀。

如何將json字符串變量轉換爲數據框。

回答

18

對於Spark 2.2+

import spark.implicits._ 
val jsonStr = """{ "metadata": { "key": 84896, "value": 54 }}""" 
val df = spark.read.json(Seq(jsonStr).toDS) 

older versions

val jsonStr = """{ "metadata": { "key": 84896, "value": 54 }}""" 
val rdd = sc.parallelize(Seq(jsonStr)) 
val df = sqlContext.read.json(rdd) 
+0

過時,請參閱下面的Spark 2.2答案 –

7

由於讀取從RDD JSON的功能星火2.2得到了棄用,這將是另一種選擇:

val jsonStr = """{ "metadata": { "key": 84896, "value": 54 }}""" 
import spark.implicits._ // spark is your SparkSession object 
val df = spark.read.json(Seq(jsonStr).toDS) 
相關問題