from_json
函數
適用於:磚的SQL磚運行時
返回一個結構體的價值jsonStr
和模式
。
參數
jsonStr
指定一個json文檔:一個字符串表達式。模式
:一個字符串表達式或調用schema_of_json函數。選項
:一個可選的地圖<字符串,字符串>文字指定指令。
之前磚12.2運行時模式
必須是文字。
返回
一個結構體字段名稱和類型匹配的模式定義。
jsonStr
應該是格式良好的對嗎模式
和選項
。模式
必須定義為逗號分隔列名稱和數據類型對用於例如創建表
。
選項
如果提供,可以有下列:
primitivesAsString
(默認假
):推斷所有原始值作為字符串類型。prefersDecimal
(默認假
):推斷所有浮點值作為一個十進製類型。如果在十進製值不符合,那麼它推斷雙打。allowComments
(默認假
):忽略了Java和c++風格的評論在JSON記錄。allowUnquotedFieldNames
(默認假
):允許非掛牌JSON字段名稱。allowSingleQuotes
(默認真正的
):允許單引號除了雙引號。allowNumericLeadingZeros
(默認假
):允許前導零的數字(例如,00012年
)。allowBackslashEscapingAnyCharacter
(默認假
):允許接受所有使用反斜杠字符引用的引用機製。allowUnquotedControlChars
(默認假
):JSON字符串可以包含非掛牌控製字符(ASCII字符值小於32,包括選項卡並換行字符)。模式
(默認寬容的
):允許一個模式來處理腐敗記錄在解析。寬容的
開會時:一個損壞的記錄,把畸形的字符串字段進行配置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格式。例如,這是使用在解析日期和時間戳。allowNonNumericNumbers
(默認真正的
):JSON解析器可以識別組不是一個數字(南
)令牌作為合法的浮點數值:+正
+∞的別名+∞
和∞
。負
負無窮大),別名∞
。南
等其他not-a-numbers,除零的結果。