2016-07-08 64 views
8

Voglio convertire la variabile di stringa in basso in dataframe su spark.come convertire la stringa json in dataframe sulla scintilla

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

so come creare dataframe da file JSON.

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

ma non so come creare dataframe da variabile stringa.

Come posso convertire la variabile json String in dataframe.

risposta

18

Per Spark 2.2+:

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

Per older versions:

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

Non aggiornato, vedere sotto la risposta per Spark 2.2 –

7

Poiché la funzione per la lettura di JSON da un RDD ha fatto abbandonata in Spark 2.2, questa sarebbe un'altra opzione:

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