【发布时间】:2018-07-15 00:51:32
【问题描述】:
我正在尝试使用Apache Spark 读取Json 数据。这是我到目前为止尝试过的代码:
val conf = new SparkConf()
.setAppName("ExplodeDemo")
.setMaster("local")
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
import sqlContext.implicits._
val df = sqlContext.read.json("file location")
df.printSchema()
当我将文件名作为参数传递给sqlContext.read.json 时效果很好,但我的要求是直接传递文件的json String。
为此,我尝试过这样:
val rdd = sc.parallelize(Seq(r))
val df = sqlContext.read.json(rdd)
df.printSchema()
其中r 是我的json 字符串,通过使用此代码,没有编译错误。但是当我尝试 df.printSchema() 时,它显示如下,并且无法检索数据。
root
|-- _corrupt_record: string (nullable = true)
【问题讨论】:
-
您的 JSON 数据是什么样的? Spark 每行只能读取一个 JSON 对象(如果您将
multiline设置为true,则每个文件只能读取一个) -
这是一个有效的 json,我用 jsonlint.com 测试过
-
我不是在问如何访问嵌套 json 的子实体,我是在问它如何打印 _corrupt_record 的模式?
标签: json hadoop apache-spark dataframe databricks