Spark 读数 JSON 有损坏的列
Spark reading JSON has corrupt column
这是我的 JSON
[
{"string":"string1","int":1,"array":[1,2,3],"dict": {"key": "value1"}},
{"string":"string2","int":2,"array":[2,4,6],"dict": {"key": "value2"}}
]
这是我的解析代码:
val mdf = sparkSession.read.option("multiline", "true").json("multi2.json")
mdf.show(false)
这输出:
+---------------+---------+--------+----+-------+
|_corrupt_record|array |dict |int |string |
+---------------+---------+--------+----+-------+
|[ |null |null |null|null |
|null |[1, 2, 3]|[value1]|1 |string1|
|null |[2, 4, 6]|[value2]|2 |string2|
|] |null |null |null|null |
+---------------+---------+--------+----+-------+
为什么我有一个_corrupt_record,一切正常?
为什么dict列只给出值而不给出键?
谢谢
打错了。选项名称是 multiLine
而不是 multiline
.
"multiLine" 选项从 Spark 2.2.0 开始支持。
与 2.1.0 对比 documentation
在 > 2.2.0 中,您的示例代码与数据一起工作。
关于 dict
列,它仍将仅显示值,但会保留架构。您可以通过以下方式验证:
scala> mdf.printSchema
root
|-- array: array (nullable = true)
| |-- element: long (containsNull = true)
|-- dict: struct (nullable = true)
| |-- key: string (nullable = true)
|-- int: long (nullable = true)
|-- string: string (nullable = true)
编辑
我意识到,很多信息已经
这是我的 JSON
[
{"string":"string1","int":1,"array":[1,2,3],"dict": {"key": "value1"}},
{"string":"string2","int":2,"array":[2,4,6],"dict": {"key": "value2"}}
]
这是我的解析代码:
val mdf = sparkSession.read.option("multiline", "true").json("multi2.json")
mdf.show(false)
这输出:
+---------------+---------+--------+----+-------+
|_corrupt_record|array |dict |int |string |
+---------------+---------+--------+----+-------+
|[ |null |null |null|null |
|null |[1, 2, 3]|[value1]|1 |string1|
|null |[2, 4, 6]|[value2]|2 |string2|
|] |null |null |null|null |
+---------------+---------+--------+----+-------+
为什么我有一个_corrupt_record,一切正常? 为什么dict列只给出值而不给出键?
谢谢
打错了。选项名称是 multiLine
而不是 multiline
.
"multiLine" 选项从 Spark 2.2.0 开始支持。
与 2.1.0 对比 documentation
在 > 2.2.0 中,您的示例代码与数据一起工作。
关于 dict
列,它仍将仅显示值,但会保留架构。您可以通过以下方式验证:
scala> mdf.printSchema
root
|-- array: array (nullable = true)
| |-- element: long (containsNull = true)
|-- dict: struct (nullable = true)
| |-- key: string (nullable = true)
|-- int: long (nullable = true)
|-- string: string (nullable = true)
编辑
我意识到,很多信息已经