開始
加載和管理數據
處理數據
政府
引用和資源
2023年6月23日更新
給我們反饋
適用於:磚的SQL磚運行時
將數據從文件位置加載到三角洲表。這是一個retriable和冪等operation-files已經加載的源位置跳過。有關示例,請參見常見的數據加載模式使用副本。
從{複製到target_table source_clause |(從source_clause選擇expression_list)} FILEFORMAT = data_source[驗證[所有| num_rows行]][文件= (file_name [,……])|模式= glob_pattern] [FORMAT_OPTIONS ({data_source_reader_option =價值},……])][COPY_OPTIONS ({copy_option =價值},…])]源_clause source [ WITH ( [ CREDENTIAL { credential_name | (temporary_credential_options) } ] [ ENCRYPTION (encryption_options) ] ) ]
target_table
識別現有的差值表。的target_table必須不包括時間規範。
源
加載的數據文件位置。文件在這個位置必須在指定的格式FILEFORMAT。位置是一個URI的形式提供的。
FILEFORMAT
訪問源位置可以提供:
credential_name
可選的名字證書用於訪問存儲位置或寫。你用這個證書隻有在文件不包括在一個位置外部位置。
內聯臨時憑證。
請注意
如果源文件路徑是一個根路徑,請添加一個斜杠(/)的文件路徑,例如,s3: / /桶/。
/
s3: / /桶/
接受憑證選項:
AWS_ACCESS_KEY,AWS_SECRET_KEY,AWS_SESSION_TOKEN在AWS S3
AWS_ACCESS_KEY
AWS_SECRET_KEY
AWS_SESSION_TOKEN
AZURE_SAS_TOKENADLS Gen2和Azure Blob存儲
AZURE_SAS_TOKEN
接受加密選項:
類型=“AWS_SSE_C”,MASTER_KEY在AWS S3
類型=“AWS_SSE_C”
MASTER_KEY
看到加載數據用拷貝到臨時憑證。
選擇expression_list
選擇指定的列或表達式之前從源數據複製到三角洲表中。你使用的表達式可以是任何東西選擇報表,包括窗口操作。你隻可以使用聚合表達式為全球aggregates-you不能集團通過列上的語法。
選擇
集團通過
FILEFORMAT = data_source
加載源文件的格式。之一CSV,JSON,AVRO,獸人,拚花,文本,BINARYFILE。
CSV
JSON
AVRO
獸人
拚花
文本
BINARYFILE
驗證
適用於:磚的SQL磚運行時10.3及以上
被加載到一個表的數據是驗證但不是寫入表中。這些驗證包括:
是否可以解析數據。
表的模式匹配,或者是否需要進化的模式。
是否所有nullability和檢查約束。
默認是驗證所有數據的加載。您可以提供一個被認可的的行數行關鍵字,如驗證15行。的複製成語句返回的預覽數據50行或更少,當使用小於50的數量行關鍵字)。
行
驗證15行
複製成
文件
一個文件名列表加載,長度達1000。不能指定模式。
模式
一團模式識別源目錄的文件加載。不能指定文件。
描述
嗎?
匹配任何單個的字符
*
匹配零個或多個字符
(美國廣播公司)
匹配一個字符的字符集{a, b, c}。
的[a -ž]
匹配一個字符的字符範圍{…z}。
(^)
匹配一個字符不是字符集或距離{}。請注意,^字符必須立即出現右邊的支架。
^
{ab、cd}
匹配字符串的字符串集{ab、cd}。
{ab, c{德,跳頻}}
匹配字符串的字符串集{ab, cde, cfh}。
FORMAT_OPTIONS
選項傳遞到Apache火花數據源讀者為指定的格式。看到格式選項為每個文件格式。
COPY_OPTIONS
選擇控製的操作複製成命令。
力:布爾,默認假。如果設置為真正的禁用,冪等性和文件加載不管他們之前已經加載。
力
假
真正的
mergeSchema:布爾,默認假。如果設置為真正的,可以進化模式根據傳入的數據。
mergeSchema
複製成支持並發調用相同的表。隻要複製成同時在調用截然不同的組輸入文件,每次調用最終會成功,否則你會得到一個事務衝突。複製成不應調用並發來提高性能;一個單一的複製成命令有多個文件通常執行比並發運行複製成命令與單個文件。複製成可以同時調用時:
多個數據生產者沒有一個簡單的方法來協調,不能讓一個調用。
當一個非常大的目錄可攝入子目錄的子目錄。當攝入與大量的目錄文件,磚推薦使用自動加載程序在可能的情況下。
學習如何訪問元數據文件的數據來源,明白了文件元數據列。
通用選項
JSON選項
CSV選項
拚花選項
AVRO選項
BINARYFILE選項
文本選項
獸人選項
以下選項適用於所有文件格式。
選項
ignoreCorruptFiles
類型:布爾
布爾
是否忽略腐敗文件。如果這是真的,火花的工作將繼續運行,當遇到損壞文件和已讀過的內容仍將返回。可見,numSkippedCorruptFiles在operationMetrics列的三角洲湖曆史。在磚運行時11.0及以上。
numSkippedCorruptFiles
operationMetrics
默認值:假
ignoreMissingFiles
是否忽略丟失的文件。如果這是真的,火花的工作將繼續運行,當遇到丟失的文件和內容閱讀仍將返回。在磚運行時11.0及以上。
默認值:假(真正的為複製成)
modifiedAfter
類型:時間戳字符串例如,2021-01-0100:00:00.000000UTC + 0
時間戳字符串
2021-01-0100:00:00.000000UTC + 0
一個可選的時間戳來攝取文件修改時間戳後提供時間戳。
默認值:無
modifiedBefore
一個可選的時間戳來攝取文件修改時間戳之前提供的時間戳。
pathGlobFilter
類型:字符串
字符串
一個潛在的水珠模式提供選擇文件。相當於模式在複製成。
recursiveFileLookup
是否加載數據基地內遞歸目錄和跳過分區推斷。
allowBackslashEscapingAnyCharacter
是否允許反斜杠轉義字符的任何成功。如果未啟用,隻有那些顯式列出字符由JSON規範可以逃脫。
allowComments
是否允許使用Java, C和c++風格的評論(' / ',‘*’,' / / '品種)在解析內容。
' / '
‘*’
' / / '
allowNonNumericNumbers
是否允許的集合不是一個數字(南)令牌作為法定數量浮動值。
南
默認值:真正的
allowNumericLeadingZeros
是否允許積分數字開始額外(循環)0(例如,000001)。
allowSingleQuotes
是否允許使用單引號(撇號,性格“\”)引用字符串(字符串名稱和值)。
“\”
allowUnquotedControlChars
是否允許JSON字符串包含保有的控製字符(ASCII字符值小於32,包括選項卡並換行字符)。
allowUnquotedFieldNames
是否允許使用非掛牌字段名稱(允許JavaScript,但不是通過JSON規範)。
badRecordsPath
存儲文件的路徑記錄壞JSON的信息記錄。
columnNameOfCorruptRecord
列存儲記錄,是畸形的,不能被解析。如果模式解析設置DROPMALFORMED,本專欄將是空的。
DROPMALFORMED
默認值:_corrupt_record
_corrupt_record
dateFormat
解析日期的格式字符串。
默認值:yyyy-MM-dd
yyyy-MM-dd
dropFieldIfAllNull
是否要忽略所有空值的列或空數組和結構體在模式推理。
編碼或字符集
JSON編碼的文件的名稱。看到charset選項列表。你不能使用utf - 16和utf - 32當多行是真正的。
charset
utf - 16
utf - 32
多行
默認值:utf - 8
utf - 8
inferTimestamp
是否嚐試推斷作為時間戳字符串TimestampType。當設置為真正的、模式推理明顯可能需要更長時間。
TimestampType
lineSep
兩個連續的JSON記錄之間的字符串。
默認值:沒有,涵蓋r \,\ r \ n,\ n
r \
\ r \ n
\ n
語言環境
一個java.util.Locale標識符。影響默認日期、時間戳和十進製解析JSON。
java.util.Locale
默認值:我們
我們
解析器模式在處理畸形的記錄。之一“寬容”,“DROPMALFORMED”,或“FAILFAST”。
“寬容”
“DROPMALFORMED”
“FAILFAST”
默認值:寬容的
寬容的
JSON記錄是否跨越多個行。
prefersDecimal
是否來推斷浮點數和雙精度數DecimalType在模式推理。
DecimalType
primitivesAsString
是否要推斷數字和布爾值等基本類型StringType。
StringType
rescuedDataColumn
是否收集所有的數據不能被解析由於模式數據類型不匹配或不匹配(包括列套管)到一個單獨的列中。這一列包含在默認情況下使用時自動加載程序。有關更多細節,請參考獲救的數據列是什麼?。
timestampFormat
解析時間戳的格式字符串。
默認值:yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX]
yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX]
時區
的java.time.ZoneId解析時使用時間戳和日期。
java.time.ZoneId
存儲文件的路徑記錄壞CSV信息記錄。
charToEscapeQuoteEscaping
類型:字符
字符
使用的用來逃避字符轉義引號。例如,對於以下記錄:(”\ \ ",b]:
(”\ \ ",b]
如果字符逃離“\”未定義時,記錄不會被解析。解析器會讀取字符:[一],[\],["],[,],[]、[b]拋出一個錯誤,因為它找不到關閉報價。
[一],[\],["],[,],[]、[b]
如果字符逃離“\”被定義為“\”記錄將被讀取2的值:[一個\]和[b]。
[一個\]
[b]
默認值:' \ 0
' \ 0
一列來存儲記錄畸形,不能被解析。如果模式解析設置DROPMALFORMED,本專欄將是空的。
評論
定義了字符代表一行評論時發現一行文本的開始。使用' \ 0禁用不發表評論。
默認值:“\ u0000”
“\ u0000”
emptyValue
空值的字符串表示。
默認值:”“
”“
CSV文件的編碼的名稱。看到charset選項列表中。utf - 16和utf - 32時不能使用多行是真正的。
enforceSchema
是否強行指定或推斷模式應用到CSV文件。如果啟用了選擇,CSV文件的標題將被忽略。這個選項默認是忽略了在使用自動加載程序來拯救數據並允許模式演化。
逃避
解析數據時使用的轉義字符。
默認值:“\”
頭
CSV文件是否包含一個頭。自動加載程序假設推斷模式時文件頭。
ignoreLeadingWhiteSpace
是否忽略主要空白每個解析值。
ignoreTrailingWhiteSpace
是否忽略尾隨的空格為每個解析值。
inferSchema
是否來推斷的數據類型解析CSV或假設所有列的記錄StringType。需要一個額外的如果設置在數據傳遞給真正的。
兩個連續的CSV記錄之間的字符串。
一個java.util.Locale標識符。影響默認日期、時間戳和小數解析CSV。
maxCharsPerColumn
類型:Int
Int
最大數量的角色期望從一個值來解析。可以用來避免內存錯誤。默認為1,這意味著無限的。
1
默認值:1
maxColumns
有多少列的硬限製記錄。
默認值:20480年
20480年
是否來推斷模式跨多個文件和每個文件的合並模式。默認啟用推斷模式時自動加載程序。
解析器模式在處理畸形的記錄。之一“寬容”,“DROPMALFORMED”,“FAILFAST”。
CSV檔案是否跨越多個行。
nanValue
當解析non-a-number值的字符串表示FloatType和倍增式列。
FloatType
倍增式
默認值:“南”
“南”
negativeInf
當解析的字符串表示負無窮FloatType或倍增式列。
默認值:“負”
“負”
nullValue
parserCaseSensitive(棄用)
在閱讀文件,是否對齊列的標題模式中聲明的情況下敏感。這是真正的默認為自動加載程序。列情況下將獲救的差異rescuedDataColumn如果啟用。這個選項已經被棄用的readerCaseSensitive。
readerCaseSensitive
positiveInf
當解析的字符串表示正無窮FloatType或倍增式列。
默認值:“正”
“正”
報價
使用的字符轉義值字段分隔符的值。
默認值:”
”
當指定大小寫敏感性行為rescuedDataColumn啟用。如果這是真的,拯救數據列的名字的情況下不同模式;否則,以不區分大小寫的方式讀取數據。
是否收集所有數據不能被解析由於:一個數據類型不匹配,不匹配和模式(包括列套管)到一個單獨的列中。這一列包含在默認情況下使用時自動加載程序。更多細節請參考獲救的數據列是什麼?。
9月或分隔符
列之間的分隔符字符串。
默認值:”、“
”、“
skipRows
的行數從一開始就應該被忽略的CSV文件(包括注釋和空行)。如果頭是真的,標題將第一unskipped和注釋行。
默認值:0
0
unescapedQuoteHandling
策略來處理非轉義引號。允許選擇:
STOP_AT_CLOSING_QUOTE:如果保有的報價在輸入,積累援引性格和價值進行解析的引用值,直到找到關閉報價。
STOP_AT_CLOSING_QUOTE
BACK_TO_DELIMITER:如果保有的報價在輸入,考慮到價值作為非上市價值。這將使當前的解析值的解析器積累所有字符直到定義的分隔符9月是發現。如果沒有找到分隔符的值,解析器將繼續積累從輸入直到分隔符或行結束字符。
BACK_TO_DELIMITER
9月
STOP_AT_DELIMITER:如果保有的報價在輸入,考慮到價值作為非上市價值。這將使解析器積累所有字符直到定義的分隔符9月或發現一行結束輸入。
STOP_AT_DELIMITER
SKIP_VALUE:輸入,如果找到保有的報價的內容解析給定的值將被忽略(直到找到下一個分隔符)和價值nullValue將會產生。
SKIP_VALUE
RAISE_ERROR:輸入,如果找到保有的報價TextParsingException將拋出。
RAISE_ERROR
TextParsingException
默認值:STOP_AT_DELIMITER
datetimeRebaseMode
控製變基之間的日期和時間戳值朱利安和預期的公曆日曆。允許的值:異常,遺產,糾正。
異常
遺產
糾正
默認值:遺產
int96RebaseMode
控製的變基INT96時間戳值之間朱利安和預期的公曆日曆。允許的值:異常,遺產,糾正。
是否來推斷模式跨多個文件和每個文件的合並模式。
avroSchema
Avro格式的用戶提供的可選模式。閱讀Avro時,這個選項可以設置為一種進化模式,這是兼容與實際Avro但是不同的模式。反序列化的模式將與進化模式一致。例如,如果您設置一個進化模式包含一個額外的列的默認值,讀取結果將包含新列。
是否來推斷模式跨多個文件和每個文件的合並模式。mergeSchemaAvro不放鬆的數據類型。
二進製文件沒有任何額外的配置選項。
編碼
文本文件的編碼的名稱。看到charset選項列表。
兩個連續的文本記錄之間的字符串。
默認值:沒有,涵蓋r \,\ r \ n和\ n
wholeText
是否要讀取一個文件作為一個單獨的記錄。
憑證
刪除
插入
合並
分區
查詢
更新