【发布时间】:2020-04-04 22:08:14
【问题描述】:
我想只为给定的键创建 json 数据框。它的值是一个列表,它是嵌套的 json 类型。我尝试了扁平化,但我认为可能有一些解决方法,因为我只需要一个 json 键即可转换为数据框。 我有像这样的json:
("""
{
"Id_columns": 2,
"metadata": [{
"id": "1234",
"type": "file",
"length": 395
}, {
"id": "1235",
"type": "file2",
"length": 396
}]
}""")
现在我想使用 spark 为键“元数据”创建一个 DataFrame,我已经编写了代码:
val json = Json.parse("""
{
"Id_columns": 2,
"metadata": [{
"id": "1234",
"type": "file",
"length": 395
}, {
"id": "1235",
"type": "file2",
"length": 396
}]
}""")
var jsonlist = Json.stringify(json("metadata"))
val rddData = spark.sparkContext.parallelize(jsonlist)
resultDF = spark.read.option("timestampFormat", "yyyy/MM/dd HH:mm:ss ZZ").json(rddData)
resultDF.show()
但它给了我错误:
overloaded method value json with alternatives:
cannot be applied to (org.apache.spark.rdd.RDD[Char])
[error] val resultDF = spark.read.option("timestampFormat", "yyyy/MM/dd HH:mm:ss ZZ").json(rddData)
^
我期待结果:
+----+-----+--------+
| id | type| length |
+----+-----+--------+
|1234|file1| 395 |
|1235|file2| 396 |
+----+-----+--------+
【问题讨论】:
标签: scala apache-spark apache-spark-sql