how to convert json string to dataframe on spark

前端 未结 7 1297
臣服心动
臣服心动 2020-11-27 15:39

I want to convert string variable below to dataframe on spark.

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

I know

7条回答
  •  暖寄归人
    2020-11-27 16:08

    For Spark 2.2+:

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

    For Spark 2.1.x:

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

    Hint: this is using sqlContext.read.json(jsonRDD: RDD[Stirng]) overload. There is also sqlContext.read.json(path: String) where it reads a Json file directly.

    For older versions:

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

提交回复
热议问题