from_csv
函數
適用於:磚的SQL磚運行時
返回一個結構體的價值csvStr
和模式
。
參數
csvStr
:一個字符串表達式指定行CSV數據。模式
:一個字符串或調用schema_of_csv函數。選項
:一個可選的地圖<字符串,字符串>文字指定指令。
返回
一個結構體字段名稱和類型匹配的模式定義。
csvStr
應該形成良好的對嗎模式
和選項
。模式
必須定義為逗號分隔列名稱和數據類型對用於例如創建表
。
選項
如果提供,可以有下列:
9月
(默認,
):設置一個為每個字段和值分隔符。該分離器可以一個或多個字符。編碼
(默認utf - 8):解碼的CSV文件指定的編碼類型。報價
(默認”
):設置一個字符用於轉義引用值的分隔符可以是值。如果你想關閉報價,您需要設置不是零而是一個空字符串。這種行為是不同的com.databricks.spark.csv
。逃避
(默認\
):設置一個字符用於轉義引號裏麵已經引用價值。charToEscapeQuoteEscaping
(默認逃避
或\ 0
):設置一個字符用於轉義引用字符的轉義。默認值是轉義字符逃避
和報價
角色是不同的,\ 0
否則。評論
(默認空字符串):設置一個字符用於跳過這個角色開始。默認情況下,它是禁用的。頭(默認
假
):使用第一行作為名稱的列。enforceSchema
(默認真正的
):如果它被設置為true,強行指定或推斷模式應用於數據源文件,和標題在CSV文件中被忽略。如果選項設置為false,驗證了模式對所有標題在CSV文件中頭選項設置為true。字段名稱的模式和列名CSV頭檢查自己的立場考慮spark.sql.caseSensitive
。盡管默認值是正確的,建議禁用enforceSchema選項來避免不正確的結果。inferSchema
(默認假
):輸入模式自動從數據推斷。它需要一個額外的數據傳遞。samplingRatio
1.0(默認):定義部分的行用於模式推斷。ignoreLeadingWhiteSpace
(默認假
):一個標誌指示是否領先的空白值讀取應該跳過。ignoreTrailingWhiteSpace
(默認假
):一個標誌指示是否尾隨的空格從值讀取應該跳過。nullValue
(默認空字符串):設置一個null值的字符串表示。emptyValue
(默認空字符串):設置一個空的字符串表示的值。nanValue
(默認南
):集non-number值的字符串表示。positiveInf
(默認正
):集正無窮值的字符串表示。negativeInf
(默認負無窮)
:設置一個負無窮值的字符串表示。dateFormat
(默認yyyy-MM-dd
):集表示日期格式的字符串。自定義日期格式按照格式Datetime模式。這適用於日期類型。timestampFormat
(默認yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX]
):設置顯示時間戳格式的字符串。自定義日期格式按照格式Datetime模式。這適用於時間戳的類型。maxColumns
(默認20480年
):定義了一個硬限製多少列記錄。maxCharsPerColumn
(默認為1):定義的最大字符數允許任何指定的值被閱讀。默認情況下,它是1意味著無限的長度unescapedQuoteHandling
(默認STOP_AT_DELIMITER
):定義CSV解析器如何處理值和保有的報價。STOP_AT_CLOSING_QUOTE
:如果保有的報價在輸入,積累援引性格和價值進行解析的引用值,直到找到關閉報價。BACK_TO_DELIMITER
:如果保有的報價在輸入,考慮到價值作為非上市價值。這將使當前的解析值的解析器積累所有字符,直到找到分隔符。如果沒有找到分隔符的值,解析器將繼續積累從輸入直到分隔符或行結束字符。STOP_AT_DELIMITER
:如果保有的報價在輸入,考慮到價值作為非上市價值。這將使解析器積累直到所有字符分隔符或找到一行結束輸入。STOP_AT_DELIMITER
:輸入,如果找到保有的報價內容解析指定的值是跳過和價值nullValue
產生。RAISE_ERROR
:輸入,如果找到保有的報價TextParsingException
拋出。
模式
(默認寬容的
):允許一個模式來處理腐敗記錄在解析。它支持以下不區分大小寫的方式。火花試圖解析隻需要列在CSV列修剪。因此,腐敗記錄可以根據需要設置不同的字段。這種行為可以被控製的spark.sql.csv.parser.columnPruning.enabled
(默認啟用)。寬容的
開會時:一個損壞的記錄,把畸形的字符串字段進行配置columnNameOfCorruptRecord
,畸形的字段設置為null。繼續腐敗記錄,一個名叫columnNameOfCorruptRecord的用戶可以設置一個字符串類型字段在一個用戶定義的模式。如果一個模式沒有字段,它滴腐敗在解析記錄。記錄用更少或更多的令牌比模式不是一個損壞的記錄到CSV。會議記錄令牌少於模式的長度,集零額外的字段。當記錄比模式的長度標記,它滴額外的令牌。FAILFAST
:開會時將拋出一個異常損壞的記錄。
columnNameOfCorruptRecord
(缺省為指定的值spark.sql.columnNameOfCorruptRecord
):允許重命名新領域有畸形的字符串創建的寬容的
模式。這將覆蓋spark.sql.columnNameOfCorruptRecord
。多行
(默認假
):解析一個記錄,這可能跨越多個行。語言環境
(默認en - us
):設置一個區域作為語言標簽在IETF BCP 47格式。例如,這是使用在解析日期和時間戳。lineSep
(默認覆蓋所有r \
,\ r \ n
,\ n
):定義行分隔符應該用於解析。最大長度是1字符。pathGlobFilter
:一個可選的水珠模式隻包含文件路徑匹配模式。語法如下org.apache.hadoop.fs.GlobFilter
。它不改變分區發現的行為。