開始
加載和管理數據
處理數據
政府
參考和資源
2023年2月9日更新
給我們反饋
屬性指定的配置選項cloudFiles源前綴為cloudFiles以便它們與其他結構化流源選項處於單獨的名稱空間中。
cloudFiles
常用的Auto Loader選項
目錄列表選項
文件通知選項
文件格式選項
通用選項
JSON選項
JSON
CSV選項
CSV
拚花選項
拚花
AVRO選項
AVRO
BINARYFILE選項
BINARYFILE
文本選項
文本
獸人選項
獸人
特定於雲的選項
AWS特定選項
Azure特定選項
穀歌特定選項
您可以配置以下目錄列表或文件通知方式。
選項
cloudFiles.allowOverwrites
類型:布爾
布爾
是否允許輸入目錄文件更改覆蓋現有數據。在Databricks Runtime 7.6及以上版本中可用。
默認值:假
假
cloudFiles.backfillInterval
類型:時間間隔字符串
時間間隔字符串
自動加載器可以觸發異步回填在一個給定的時間間隔,例如。1一天每天回填一次,或者1周每周回填一次。文件事件通知係統不能保證100%交付所有已上傳的文件,因此您可以使用回填來確保所有文件最終得到處理,可用Databricks Runtime 8.4(不支持)及以上。如果使用增量列表,還可以使用常規回填來保證最終的完整性,可在Databricks Runtime 9.1 LTS及以上。
1一天
1周
默認值:無
cloudFiles.format
類型:字符串
字符串
的數據文件格式源路徑。允許的值包括:
avro:Avro文件
avro
binaryFile:二進製文件
binaryFile
csv:CSV文件
csv
json:JSON文件
json
獸人: ORC文件
拚花:鑲花的文件
文本:文本文件
默認值:無(必選選項)
cloudFiles.includeExistingFiles
是在流處理輸入路徑中包含現有文件,還是僅處理初始設置後到達的新文件。此選項僅在您第一次啟動流時計算。在重新啟動流之後更改此選項沒有任何效果。
默認值:真正的
真正的
cloudFiles.inferColumnTypes
在利用模式推斷時是否推斷準確的列類型。默認情況下,在推斷JSON和CSV數據集時,列被推斷為字符串。看到模式推理欲知詳情。
cloudFiles.maxBytesPerTrigger
類型:字節字符串
字節字符串
每個觸發器中要處理的最大新字節數。您可以指定字節字符串,例如10克將每個微批數據限製在10gb。這是一個軟極大值。如果每個文件大小為3gb, Databricks可以在微批處理中處理12gb。當與cloudFiles.maxFilesPerTrigger, Databricks的消耗上限為cloudFiles.maxFilesPerTrigger或cloudFiles.maxBytesPerTrigger,以先到達者為準。與一起使用時,此選項無效Trigger.Once ().
10克
cloudFiles.maxFilesPerTrigger
Trigger.Once ()
cloudFiles.maxFileAge
為重複數據刪除目的跟蹤文件事件的時間。Databricks不建議調優此參數,除非您正在以每小時數百萬個文件的數量級攝取數據。請參閱有關事件保留欲知詳情。
類型:整數
整數
每個觸發器中要處理的新文件的最大數量。當與cloudFiles.maxBytesPerTrigger, Databricks的消耗上限為cloudFiles.maxFilesPerTrigger或cloudFiles.maxBytesPerTrigger,以先到達者為準。與一起使用時,此選項無效Trigger.Once ().
缺省值:1000
cloudFiles.partitionColumns
一個以逗號分隔的Hive樣式分區列列表,您希望從文件的目錄結構推斷出這些列。Hive樣式分區列是由等號組合的鍵值對< base_path > / = x / b = 1 / c = y / file.format.在本例中,分區列為一個,b,c.默認情況下,如果您使用模式推斷並提供來加載數據,這些列將自動添加到您的模式中。如果您提供了一個模式,Auto Loader期望這些列包含在模式中。如果不希望這些列作為模式的一部分,可以指定""忽略這些列。此外,當你想在複雜的目錄結構中推斷出文件路徑時,可以使用這個選項,如下例所示:
< base_path > / = x / b = 1 / c = y / file.format
一個
b
c
""
< base_path > /年= 2022 /周= 1 / file1.csv< base_path > /年= 2022 /月= 2 /天= 3 / file2.csv< base_path > /年= 2022 /月= 2 /天= 4 / file3.csv
< base_path > /年= 2022 /周= 1 / file1.csv
< base_path > /年= 2022 /月= 2 /天= 3 / file2.csv
< base_path > /年= 2022 /月= 2 /天= 4 / file3.csv
指定cloudFiles.partitionColumns作為年、月、日將返回年= 2022為file1.csv,但月而且一天列將是零.月而且一天將正確地解析file2.csv而且file3.csv.
年、月、日
年= 2022
file1.csv
月
一天
零
file2.csv
file3.csv
cloudFiles.schemaEvolutionMode
在數據中發現新列時演進模式的模式。默認情況下,在推斷JSON數據集時,列被推斷為字符串。看到模式演化欲知詳情。
默認值:“addNewColumns”當沒有提供模式時。“沒有”否則。
“addNewColumns”
“沒有”
cloudFiles.schemaHints
在模式推斷期間提供給自動加載器的模式信息。看到模式提示欲知詳情。
cloudFiles.schemaLocation
存儲推斷的模式和後續更改的位置。看到模式推理欲知詳情。
默認值:None(在推斷模式時必需)
cloudFiles.useStrictGlobber
是否使用嚴格的globber來匹配Apache Spark中其他文件源的默認globber行為。看到常見的數據加載模式欲知詳情。在Databricks Runtime 12.0及以上版本中可用。
cloudFiles.validateOptions
是否驗證Auto Loader選項,並對未知或不一致的選項返回錯誤。
以下選項與目錄列表模式相關。
cloudFiles.useIncrementalListing
在目錄清單模式下是否使用增量清單而不是完整清單。默認情況下,Auto Loader將盡最大努力自動檢測給定目錄是否適用於增量列表。可以顯式地使用增量清單,也可以將完整目錄清單設置為真正的或假分別。
使用Azure數據湖存儲Gen2 (abfss: / /), s3 (s3: / /),及GCS (g: / /).
abfss: / /
s3: / /
g: / /
可以在Databricks Runtime 9.1 LTS及以上。
默認值:汽車
汽車
可用值:汽車,真正的,假
以下選項與文件通知模式相關。
cloudFiles.fetchParallelism
從隊列服務獲取消息時使用的線程數。
缺省值:1
cloudFiles.pathRewrites
類型:JSON字符串
僅當指定queueUrl它接收來自多個S3桶的文件通知,並且您希望利用為訪問這些容器中的數據而配置的掛載點。屬性的前綴可使用此選項重寫桶/關鍵帶有掛載點的路徑。隻能重寫前綴。例如,對於配置{" < databricks-mounted-bucket > /路徑”:“dbfs: / mnt /數據倉庫工作”},小路s3: / / < databricks-mounted-bucket > /道路/ 2017/08 / fileA.json重寫為dbfs: / mnt /數據倉庫工作/ 2017/08 / fileA.json.
queueUrl
桶/關鍵
{" < databricks-mounted-bucket > /路徑”:“dbfs: / mnt /數據倉庫工作”}
s3: / / < databricks-mounted-bucket > /道路/ 2017/08 / fileA.json
dbfs: / mnt /數據倉庫工作/ 2017/08 / fileA.json
cloudFiles.resourceTag
類型:地圖(字符串,字符串)
地圖(字符串,字符串)
一係列幫助關聯和識別相關資源的鍵值標記對,例如:
cloudFiles.option(“cloudFiles.resourceTag.myFirstKey”,“myFirstValue”).option(“cloudFiles.resourceTag.mySecondKey”,“mySecondValue”)
cloudFiles.option(“cloudFiles.resourceTag.myFirstKey”,“myFirstValue”)
.option(“cloudFiles.resourceTag.mySecondKey”,“mySecondValue”)
有關AWS的更多信息,請參見Amazon SQS成本分配標簽而且為Amazon SNS主題配置標簽.(1)
有關Azure的更多信息,請參見命名隊列和元數據以及properties.labels在事件訂閱.Auto Loader將這些鍵值標記對作為標簽存儲在JSON中。(1)
properties.labels
有關GCP的更多信息,請參見使用標簽報告使用情況.(1)
cloudFiles.useNotifications
是否使用文件通知方式判斷是否有新文件。如果假,使用目錄列表模式。看到Auto Loader如何工作.
(1)Auto Loader在默認情況下添加以下鍵值標記對:
供應商:磚
供應商
磚
路徑:加載數據的位置。由於標簽限製,在GCP中不可用。
路徑
checkpointLocation:流檢查點的位置。由於標簽限製,在GCP中不可用。
checkpointLocation
streamId:流的全局唯一標識符。
streamId
這些鍵名是保留的,不能重寫它們的值。
與自動加載器,你可以攝取JSON,CSV,拚花,AVRO,文本,BINARYFILE,獸人文件。
以下選項適用於所有文件格式。
ignoreCorruptFiles
是否忽略損壞的文件。如果為true,當遇到損壞的文件時,Spark作業將繼續運行,已讀取的內容仍將返回。可見,numSkippedCorruptFiles在operationMetrics三角洲湖曆史的專欄。在Databricks Runtime 11.0及以上版本中可用。
numSkippedCorruptFiles
operationMetrics
ignoreMissingFiles
是否忽略丟失的文件。如果為true,當遇到缺失文件時,Spark作業將繼續運行,並返回已讀取的內容。在Databricks Runtime 11.0及以上版本中可用。
默認值:假(真正的為複製成)
複製成
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
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 asDecimalType在圖式推斷期間。
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
mergeSchema
是否跨多個文件推斷模式,是否合並每個文件的模式。當推斷模式時,Auto Loader默認啟用。
解析器模式處理畸形記錄。之一“寬容”,“DROPMALFORMED”,“FAILFAST”.
CSV記錄是否跨多行。
nanValue
解析時非數字值的字符串表示形式FloatType而且倍增式列。
FloatType
倍增式
默認值:“南”
“南”
negativeInf
解析時負無窮大的字符串表示形式FloatType或倍增式列。
默認值:“負”
“負”
nullValue
parserCaseSensitive(棄用)
讀取文件時,是否將標頭中聲明的列與模式大小寫敏感地對齊。這是真正的默認為Auto Loader。類型中因大小寫而不同的列將被保存rescuedDataColumn如果啟用。此選項已被棄用,而支持readerCaseSensitive.
readerCaseSensitive
positiveInf
解析時正無窮大的字符串表示FloatType或倍增式列。
默認值:“正”
“正”
報價
字段分隔符是值的一部分,用於轉義值的字符。
時指定區分大小寫的行為rescuedDataColumn啟用。如果為true,則保存模式中名稱因大小寫不同而不同的數據列;否則,讀取數據時不區分大小寫。
是否收集由於數據類型不匹配和模式不匹配(包括列大小寫)導致無法解析的所有數據到單獨的列。在使用自動加載器時,默認情況下包括該列。詳情請參閱獲救的數據列是什麼?.
9月或分隔符
列之間的分隔符字符串。
默認值:”、“
”、“
skipRows
應該被忽略的CSV文件開頭的行數(包括注釋行和空行)。如果頭為true時,標題將是第一個未跳過且未注釋的行。
默認值: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:如果在輸入中發現未轉義的引號,則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
是否將文件作為單個記錄讀取。
Auto Loader提供了許多用於配置雲基礎設施的選項。
僅在您選擇時提供以下選項cloudFiles.useNotifications=真正的你想讓Auto Loader為你設置通知服務:
cloudFiles.region
源S3桶所在的區域,以及創建AWS SNS和SQS服務的區域。
默認值:在Databricks Runtime 9.0及以上版本EC2實例所在的區域。在Databricks Runtime 8.4及以下版本中,必須指定區域。
僅在您選擇時提供以下選項cloudFiles.useNotifications=真正的並且你想要Auto Loader使用一個你已經設置好的隊列:
cloudFiles.queueUrl
SQS隊列的URL。如果提供,Auto Loader將直接使用該隊列中的事件,而不是設置自己的AWS SNS和SQS服務。
當IAM角色不可用或從不同的雲吸收數據時,您可以使用以下選項提供訪問AWS SNS和SQS的憑據。
cloudFiles.awsAccessKey
用戶的AWS訪問密鑰ID。必須提供cloudFiles.awsSecretKey.
cloudFiles.awsSecretKey
用戶的AWS秘密訪問密鑰。必須提供cloudFiles.awsAccessKey.
cloudFiles.roleArn
要承擔的IAM角色的ARN。角色可以從集群的實例概要文件中假定,也可以通過提供憑據來假定cloudFiles.awsAccessKey而且cloudFiles.awsSecretKey.
cloudFiles.roleExternalId
在假設角色使用時提供的標識符cloudFiles.roleArn.
cloudFiles.roleSessionName
在假設角色使用時使用的可選會話名稱cloudFiles.roleArn.
cloudFiles.stsEndpoint
一個可選端點,用於在假定使用的角色時訪問AWS STScloudFiles.roleArn.
如果指定,則必須為以下所有選項提供值cloudFiles.useNotifications=真正的你想讓Auto Loader為你設置通知服務:
cloudFiles.clientId
服務主體的客戶端ID或應用程序ID。
cloudFiles.clientSecret
服務主體的客戶端機密。
cloudFiles.connectionString
存儲帳戶的連接字符串,基於帳戶訪問密鑰或共享訪問簽名(SAS)。
cloudFiles.resourceGroup
在其中創建存儲帳戶的Azure資源組。
cloudFiles.subscriptionId
在其中創建資源組的Azure訂閱ID。
cloudFiles.tenantId
在其中創建服務主體的Azure租戶ID。
重要的
自動通知設置可在Azure中國和政府地區使用Databricks Runtime 9.1及更高版本。你必須提供queueName在舊DBR版本的這些區域中使用帶有文件通知的自動加載器。
queueName
cloudFiles.queueName
Azure隊列的名稱。如果提供,雲文件源將直接使用來自此隊列的事件,而不是設置自己的Azure事件網格和隊列存儲服務。那樣的話,你的cloudFiles.connectionString在隊列上隻需要讀權限。
自動加載器可以自動設置通知服務為您利用穀歌服務帳戶。您可以通過以下步驟配置您的集群以承擔服務帳戶穀歌服務設置.中指定了服務帳戶所需的權限什麼是自動加載文件通知模式?.否則,如果您希望Auto Loader為您設置通知服務,則可以提供以下身份驗證選項。
cloudFiles.client
穀歌服務帳戶的客戶端ID。
cloudFiles.clientEmail
穀歌服務賬號的郵箱。
cloudFiles.privateKey
為“穀歌”服務帳戶生成的私鑰。
cloudFiles.privateKeyId
為穀歌服務帳戶生成的私鑰id。
cloudFiles.projectId
GCS桶所在的項目的id。穀歌雲Pub/Sub訂閱也將在該項目中創建。
cloudFiles.subscription
穀歌雲發布/訂閱的名稱。如果提供,雲文件源將使用來自此隊列的事件,而不是設置自己的GCS通知和穀歌雲發布/訂閱服務。