小编典典

如何在Spark上将JSON字符串转换为数据帧

json

我想将下面的字符串变量转换为spark上的dataframe。

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

我知道如何从json文件创建数据帧。

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

但是我不知道如何从字符串变量创建数据框。

如何将json字符串变量转换为dataframe。


阅读 373

收藏
2020-07-27

共1个答案

小编典典

对于Spark 2.2+

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

对于Spark 2.1.x

val events = sc.parallelize("""{"action":"create","timestamp":"2016-01-07T00:01:17Z"}""" :: Nil)    
val df = sqlContext.read.json(events)

提示:这是使用sqlContext.read.json(jsonRDD: RDD[Stirng])重载。它也sqlContext.read.json(path: String)可以直接读取Json文件。

对于旧版本

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