開始
用戶指南
管理指南
參考指南
資源
2022年7月14日更新
給我們反饋
將數據從文件位置加載到Delta表中。這是一個可檢索的冪等操作——源位置中已經加載的文件將被跳過。有關示例,請參見COPY INTO的常見數據加載模式.
COPY INTO target_table FROM {source | (SELECT expression_list FROM source)} [WITH ([CREDENTIAL {credential_name | (temporary_credential_options)}] [ENCRYPTION (encryption_options)])] FILEFORMAT = data_source [VALIDATE [ALL | num_rows ROWS]] [FILES = (file_name[,…) | PATTERN = regex_pattern] [FORMAT_OPTIONS ({data_source_reader_option = value}[,…][COPY_OPTIONS ({copy_option = value}[,…])))
target_table
標識現有的Delta表。的target_table不可包含時間規範.
如果表名以位置的形式提供,例如:delta. /道路/ /表的, Unity Catalog可以控製對被寫入的位置的訪問。你可以通過以下方式寫入外部位置:
delta. /道路/ /表的
將位置定義為外部位置寫文件外部位置的權限。
寫文件
有寫文件命名存儲憑據上的權限,提供使用以下方式寫入位置的授權:複製成delta. /一些/位置的與(證書< named_credential >)
複製成delta. /一些/位置的與(證書< named_credential >)
看到管理外部位置和存儲憑證為更多的細節。
預覽
統一目錄公共預覽.要參與預覽,請與您的Databricks代表聯係。
源
要從其中加載數據的文件位置。中指定的格式FILEFORMAT.位置以URI的形式提供。
FILEFORMAT
可以通過以下方式訪問源位置:
credential_name
用於訪問或寫入存儲位置的憑據的可選名稱。類文件中不包含文件位置時才使用此憑據外部位置.
內聯臨時憑證。
將源位置定義為外部位置,並擁有讀文件通過Unity Catalog獲取外部位置的權限。
讀文件
使用命名存儲憑據讀文件權限提供了通過Unity Catalog從一個位置讀取的授權。
如果路徑已經定義為您有權限使用的外部位置,則不需要提供內聯或命名憑據。看到管理外部位置和存儲憑證為更多的細節。
請注意
如果源文件路徑是根路徑,請添加斜杠(/)在文件路徑的末尾,例如,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
看到使用臨時憑據用COPY INTO加載數據.
選擇expression_list
在複製到Delta表之前,從源數據中選擇指定的列或表達式。這些表達可以是任何你使用的東西選擇語句,包括窗口操作。隻能對全局聚合使用聚合表達式—不能集團通過在使用此語法的列上。
選擇
集團通過
FILEFORMAT = data_source
要加載的源文件的格式。之一CSV,JSON,AVRO,獸人,拚花,文本,BINARYFILE.
CSV
JSON
AVRO
獸人
拚花
文本
BINARYFILE
驗證
要加載到表中的數據經過驗證,但不寫入表。這些驗證包括:
數據是否可以解析。
模式是否與表的模式匹配,或者是否需要演化模式。
是否滿足所有可空性和檢查約束。
默認值是驗證要加載的所有數據。方法可以提供要驗證的大量行行關鍵字,如驗證15行.的複製成語句返回50行或50行以下數據的預覽,如果與行關鍵字)。
行
驗證15行
複製成
文件
要加載的文件名列表,長度不超過1000。不能用模式.
模式
一個正則表達式模式,標識要從源目錄加載的文件。不能用文件.
FORMAT_OPTIONS
選項,以指定的格式傳遞給Apache Spark數據源閱讀器。看到格式選項對於每種文件格式。
COPY_OPTIONS
選項控製的操作複製成命令。
力:布爾,默認假.如果設置為真正的,冪等性被禁用,文件無論之前是否被加載都將被加載。
力
假
真正的
mergeSchema:布爾,默認假.如果設置為真正的,模式可以根據傳入的數據進行演化。要發展表的模式,必須對表具有OWN權限。
mergeSchema
要了解如何訪問基於文件的數據源的元數據,請參見文件元數據列.
通用選項
JSON選項
CSV選項
拚花選項
AVRO選項
BINARYFILE選項
文本選項
獸人選項
以下選項適用於所有文件格式。
選項
modifiedAfter
類型:時間戳字符串例如,2021-01-0100:00:00.000000UTC + 0
時間戳字符串
2021-01-0100:00:00.000000UTC + 0
可選的時間戳,用於在所提供的時間戳之後添加修改時間戳的文件。
默認值:無
modifiedBefore
可選的時間戳,用於接收在所提供的時間戳之前有修改時間戳的文件。
pathGlobFilter
類型:字符串
字符串
用於選擇文件的潛在glob模式。相當於模式在複製成.
recursiveFileLookup
類型:布爾
布爾
是否在基目錄內遞歸加載數據並跳過分區推斷。
默認值:假
allowBackslashEscapingAnyCharacter
是否允許反斜杠轉義它後麵的任何字符。如果未啟用,則隻有JSON規範顯式列出的字符可以轉義。
allowComments
是否允許使用Java、C和c++風格的注釋(' / ',‘*’,' / / '變種)在解析內容中或不在。
' / '
‘*’
' / / '
allowNonNumericNumbers
是否允許not-a-number的集合(南)令牌作為合法的浮點數值。
南
默認值:真正的
allowNumericLeadingZeros
是否允許整數以附加的(可忽略的)零開頭(例如,000001)。
allowSingleQuotes
是否允許使用單引號(撇號、字符“\”)用於引用字符串(名稱和字符串值)。
“\”
allowUnquotedControlChars
是否允許JSON字符串包含未轉義的控製字符(值小於32的ASCII字符,包括製表符和換行符)。
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
ignoreCorruptFile
是否忽略損壞的文件。如果為true, Spark作業將在遇到損壞的文件時繼續運行,並且仍然會返回已讀取的內容。可見,numSkippedCorruptFiles在operationMetrics一欄的三角洲湖曆史。在Databricks Runtime 11.0及以上版本中可用。
numSkippedCorruptFiles
operationMetrics
ignoreMissingFiles
是否忽略丟失的文件。如果為true, Spark作業將在遇到丟失的文件時繼續運行,並且仍然會返回已讀取的內容。在Databricks Runtime 11.0及以上版本中可用。
默認值:假(真正的為複製成)
inferTimestamp
是否嚐試將時間戳字符串作為TimestampType.當設置為真正的在美國,圖式推理可能需要明顯更長時間。
TimestampType
lineSep
兩個連續JSON記錄之間的字符串。
默認值:Noner \,\ r \ n,\ n
r \
\ r \ n
\ n
語言環境
一個java.util.Locale標識符。影響JSON中的默認日期、時間戳和十進製解析。
java.util.Locale
默認值:我們
我們
圍繞處理畸形記錄的解析器模式。之一“寬容”,“DROPMALFORMED”,或“FAILFAST”.
“寬容”
“DROPMALFORMED”
“FAILFAST”
默認值:寬容的
寬容的
JSON記錄是否跨越多行。
prefersDecimal
是否推斷float和double為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
評論
定義在文本行的開始處表示行注釋的字符。使用' \ 0禁用注釋跳過。
默認值:“\ u0000”
“\ u0000”
emptyValue
空值的字符串表示形式。
默認值:""
""
CSV文件的編碼名稱。看到charset以獲取選項列表。utf - 16而且utf - 32不能在以下情況下使用多行是真正的.
enforceSchema
是否強製將指定的或推斷的模式應用到CSV文件。如果啟用該選項,CSV文件的頭文件將被忽略。當使用Auto Loader來保存數據並允許模式演化時,默認情況下會忽略此選項。
逃避
解析數據時使用的轉義字符。
默認值:“\”
頭
CSV文件是否包含頭文件。Auto Loader在推斷模式時假設文件有頭文件。
ignoreLeadingWhiteSpace
是否忽略每個解析值的前導空白。
ignoreTrailingWhiteSpace
是否忽略每個解析值的尾隨空格。
inferSchema
是推斷已解析CSV記錄的數據類型,還是假設所有列都為StringType.如果設置為,則需要對數據進行額外的傳遞真正的.
兩個連續CSV記錄之間的字符串。
一個java.util.Locale標識符。影響CSV中的默認日期、時間戳和十進製解析。
maxCharsPerColumn
類型:Int
Int
需要解析的值的最大字符數。可以用來避免內存錯誤。默認為-1,意思是無限的。
-1
默認值:-1
maxColumns
一個記錄可以有多少列的硬性限製。
默認值:20480
20480
是否跨多個文件推斷模式並合並每個文件的模式。當推斷模式時,默認為Auto Loader啟用。
圍繞處理畸形記錄的解析器模式。之一“寬容”,“DROPMALFORMED”,“FAILFAST”.
CSV記錄是否跨越多行。
nanValue
解析時非數字值的字符串表示形式FloatType而且倍增式列。
FloatType
倍增式
默認值:“南”
“南”
negativeInf
解析時負無窮的字符串表示形式FloatType或倍增式列。
默認值:“負”
“負”
nullValue
parserCaseSensitive(棄用)
讀取文件時,是否將頭中聲明的列與模式大小寫敏感地對齊。這是真正的默認為自動加載器。中的不同情況下不同的列將被挽救rescuedDataColumn如果啟用。這個選項已被棄用,而讚成readerCaseSensitive.
readerCaseSensitive
positiveInf
解析時正無窮大的字符串表示形式FloatType或倍增式列。
默認值:“正”
“正”
報價
用於轉義值的字符,其中字段分隔符是值的一部分。
是否收集由於以下原因而無法解析的所有數據:數據類型不匹配,模式不匹配(包括列大小寫)到單獨列。當使用自動加載器時,默認包含此列。更多詳情請參閱獲救的數據列.
9月或分隔符
列之間的分隔符字符串。
默認值:”、“
”、“
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:如果在輸入中發現未轉義的引號,則aTextParsingException將拋出。
RAISE_ERROR
TextParsingException
默認值:STOP_AT_DELIMITER
datetimeRebaseMode
控製儒略曆和預期公曆之間的DATE和TIMESTAMP值的重基。允許的值:異常,遺產,糾正.
異常
遺產
糾正
默認值:遺產
int96RebaseMode
控製在儒略曆和預期公曆之間的INT96時間戳值的重基。允許的值:異常,遺產,糾正.
是否跨多個文件推斷模式並合並每個文件的模式。
avroSchema
用戶以Avro格式提供的可選模式。讀取Avro時,可以將該選項設置為演化模式,它與實際的Avro模式兼容,但不同。反序列化模式將與演化模式一致。例如,如果您設置一個演化模式,其中包含一個帶有默認值的額外列,則讀取結果也將包含新列。
是否跨多個文件推斷模式並合並每個文件的模式。mergeSchemafor Avro並不放鬆數據類型。
二進製文件沒有任何額外的配置選項。
編碼
TEXT文件的編碼名稱。看到charset查看選項列表。
兩個連續的TEXT記錄之間的字符串。
默認值:Noner \,\ r \ n而且\ n
wholeText
是否將文件作為單個記錄讀取。
憑證
刪除
插入
合並
分區
查詢
更新