[英]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
。
從Spark 2.2.0開始支持“ multiLine”選項。
與2.1.0 文檔進行對比
在> 2.2.0中,帶有data的示例代碼可以正常工作。
關於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)
編輯我意識到,很多信息已經在這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.