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