from_json
函數
適用於:磚的SQL磚運行時
屬性返回一個結構值jsonStr
而且模式
.
參數
jsonStr
:指定json文檔的STRING表達式。模式
的STRING字麵值或調用schema_of_json函數.選項
:一個可選的MAP字麵值指定指令。
返回
具有與模式定義匹配的字段名和類型的結構。
jsonStr
應該是有序的模式
而且選項
.模式
必須定義為逗號分隔的列名和數據類型對,例如創建表格
.
選項
,如果提供,可以是以下任何一種:
primitivesAsString
(默認假
):將所有基元值推斷為字符串類型。prefersDecimal
(默認假
):將所有浮點值推斷為十進製類型。如果值不適合十進製,則將它們推斷為雙精度。allowComments
(默認假
):忽略JSON記錄中的Java和c++風格注釋。allowUnquotedFieldNames
(默認假
):允許不帶引號的JSON字段名。allowSingleQuotes
(默認真正的
):除了雙引號之外,還允許使用單引號。allowNumericLeadingZeros
(默認假
):允許在數字中使用前導零(例如,00012
).allowBackslashEscapingAnyCharacter
(默認假
):允許使用反斜杠引用機製接受所有字符的引用。allowUnquotedControlChars
(默認假
):允許JSON字符串包含不帶引號的控製字符(值小於32的ASCII字符,包括製表符和換行符)。模式
(默認寬容的
):允許在解析過程中處理損壞記錄的模式。寬容的
:當它遇到損壞的記錄時,將畸形的字符串放入配置的字段中columnNameOfCorruptRecord
,並將格式錯誤的字段設置為null。要保存損壞的記錄,可以設置名為的字符串類型字段columnNameOfCorruptRecord
在用戶定義的模式中。如果模式沒有該字段,則在解析期間丟棄損壞的記錄。在推斷模式時,它隱式地添加columnNameOfCorruptRecord
字段。FAILFAST
:當遇到損壞的記錄時拋出異常。
columnNameOfCorruptRecord
(默認值為spark.sql.columnNameOfCorruptRecord
):允許重命名有畸形字符串創建的新字段寬容的
模式。這將覆蓋spark.sql.columnNameOfCorruptRecord
.dateFormat
(默認yyyy-MM-dd
):設置表示日期格式的字符串。自定義日期格式遵循的格式Datetime模式.這適用於日期類型。timestampFormat
(默認yyyy-MM-dd 'HH: mm: ss。SSS] [XXX]
):設置表示時間戳格式的字符串。自定義日期格式遵循的格式Datetime模式.這適用於時間戳類型。多行
(默認假
):每個文件解析一條記錄,該記錄可能跨越多行。編碼
(默認不設置):允許強製設置JSON文件的標準基本編碼或擴展編碼之一。例如UTF-16BE, UTF-32LE。如果沒有指定編碼和多行
設置為真正的
,則自動檢測。lineSep
(默認涵蓋所有r \
,\ r \ n
而且\ n
):定義用於解析的行分隔符。samplingRatio
(默認1.0):定義用於模式推斷的輸入JSON對象的比例。dropFieldIfAllNull
(默認假
):模式推斷時是否忽略所有空值的列或空數組/結構。語言環境
(默認是en - us
):集
IETF BCP 47格式的locale作為語言標記。例如,它在解析日期和時間戳時使用。allowNonNumericNumbers
(默認真正的
):允許JSON解析器識別一組非數字(南
)令牌作為合法的浮點數值:+正
對於正無窮,以及的別名+∞
而且∞
.負
對於負無窮),別名∞
.南
對於其他非a數,比如除以0的結果。