簡體   English   中英

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

從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM