自动加载程序选项

特定于 cloudFiles 源的配置选项以 cloudFiles 为前缀,因此它们位于与其他结构化流式处理源选项不同的命名空间中。

常见自动装载器选项

可为目录列表或文件通知模式配置以下选项。

选项
cloudFiles.allowOverwrites
类型:Boolean
是否允许输入目录文件更改替代现有数据。
此配置的启用需要注意几个事项。有关详细信息,请参阅自动加载器在追加或覆盖文件时是否会重新处理文件?
默认值:false
cloudFiles.backfillInterval
类型:Interval String
自动加载程序可在给定的时间间隔触发异步回填。
例如,1 day 表示每天回填一次,1 week 表示每周回填一次。 文件事件通知系统不保证 100% 交付已上传的所有文件,因此可使用回填来保证所有文件最终都得到处理,此功能在 Databricks Runtime 8.4 (EoS)及更高版本中可用。
默认值: 无
cloudFiles.format
类型:String
源路径中的数据文件格式。 允许的值包括:

默认值:无(必需选项)
cloudFiles.includeExistingFiles
类型:Boolean
是包含流式处理输入路径中的现有文件,还是仅处理初始设置后到达的新文件。 仅在您首次启动流时会对该选项进行评估。 在重启流后更改此选项不起作用。
默认值:true
cloudFiles.inferColumnTypes
类型:Boolean
在利用架构推理时是否推断确切的列类型。 默认情况下,在推断 JSON 和 CSV 数据集时,列将被推断为字符串。 有关更多详细信息,请参阅架构推理
默认值:false
cloudFiles.maxBytesPerTrigger
类型:Byte String
要在每个触发器中处理的最大新字节数。 你可以指定一个字节字符串(例如 10g),将每个微批限制为 10 GB 数据。 这是一个软性最大值。 如果每个文件为 3 GB,则 Azure Databricks 在一个微批中可以处理 12 GB。 与 cloudFiles.maxFilesPerTrigger 一起使用时,Azure Databricks 最多消耗 cloudFiles.maxFilesPerTriggercloudFiles.maxBytesPerTrigger 的最低限制(以先达到者为准)。 与 Trigger.Once()Trigger.Once() 已弃用)一起使用时,此选项不起作用。
默认值: 无
cloudFiles.maxFileAge
类型:Interval String
出于重复数据删除目的而跟踪文件事件的时长。 Databricks 建议不要优化此参数,除非你是在以每小时数百万个文件的速度引入数据。 有关更多详细信息,请参阅事件保留章节。
过于激进地调整 cloudFiles.maxFileAge 可能会导致数据质量问题,例如重复引入或缺少文件。 因此,Databricks 建议为 cloudFiles.maxFileAge 使用保守设置,例如 90 天,这与类似数据引入解决方案建议的值相当。
默认值: 无
cloudFiles.maxFilesPerTrigger
类型:Integer
要在每个触发器中处理的最大新文件数。 与 cloudFiles.maxBytesPerTrigger 一起使用时,Azure Databricks 最多消耗到 cloudFiles.maxFilesPerTriggercloudFiles.maxBytesPerTrigger 的最低限制,以先达到者为准。 与 Trigger.Once()(已弃用)一起使用时,此选项不起作用。
默认值:1000
cloudFiles.partitionColumns
类型:String
Hive 样式分区列的逗号分隔列表,你需要从文件的目录结构推断出该列表。 Hive 样式分区列是由等号组合的键值对,例如
<base-path>/a=x/b=1/c=y/file.format。 在此示例中,分区列为 abc。 默认情况下,如果你使用的是架构推理并提供可从中加载数据的 <base-path>,则这些列将自动添加到架构中。 如果提供架构,则自动加载程序会期望这些列包含在架构中。 如果你不希望这些列成为架构的一部分,则可以指定 "" 以忽略这些列。 此外,当你希望在复杂目录结构中推断出列的文件路径时,可以使用此选项,如下例所示:
<base-path>/year=2022/week=1/file1.csv
<base-path>/year=2022/month=2/day=3/file2.csv
<base-path>/year=2022/month=2/day=4/file3.csv
cloudFiles.partitionColumns 指定为 year,month,day 将返回
适用于 file1.csvyear=2022,但 monthday 列的值将变为 null
monthday 将正确解析为 file2.csvfile3.csv
默认值: 无
cloudFiles.schemaEvolutionMode
类型:String
在数据中发现新列时对架构进行演变的模式。 默认情况下,在推断 JSON 数据集时,将列推断为字符串。 有关更多详细信息,请参阅架构演变
默认值:在未提供架构时为 "addNewColumns"
"none" 其他情况。
cloudFiles.schemaHints
类型:String
在架构推理期间向自动加载程序提供的架构信息。 有关更多详细信息,请参阅架构提示
默认值: 无
cloudFiles.schemaLocation
类型:String
存储推断出的架构和后续更改的位置。 有关更多详细信息,请参阅架构推理
默认值:无(推断架构时需要)
cloudFiles.useStrictGlobber
类型:Boolean
是否使用与 Apache Spark 中其他文件源的默认通配行为相匹配的严格通配符。 有关更多详细信息,请参阅常见数据加载模式。 在 Databricks Runtime 12.2 LTS 及更高版本中可用。
默认值:false
cloudFiles.validateOptions
类型:Boolean
是否对自动加载器选项进行验证,并对未知或不一致的选项返回错误。
默认值:true

目录列表选项

以下选项与目录列表模式相关。

选项
cloudFiles.useIncrementalListing(已弃用)
类型:String
此功能已弃用。 Databricks 建议使用文件通知模式,而不是
cloudFiles.useIncrementalListing
是否在目录列表模式下使用增量列表而不是完整列表。 默认情况下,自动加载程序尽最大努力自动检测给定目录是否适用于增量列表。 可以显式使用增量列表,或者通过将完整目录列表分别设置为 truefalse 来使用该列表。
错误地在非按词汇排序的目录上启用增量列表会阻止自动加载程序发现新文件。
适用于 Azure Data Lake Storage Gen2 (abfss://)、S3 (s3://) 和 GCS (gs://)。
Databricks Runtime 9.1 LTS 及更高版本中可用。
默认值:auto
可用值:autotruefalse

文件通知选项

以下选项与文件通知模式相关。

选项
cloudFiles.fetchParallelism
类型:Integer
从队列服务中提取消息时要使用的线程数。
默认值:1
cloudFiles.pathRewrites
类型:JSON 字符串
仅当指定从多个 S3 存储桶接收文件通知的 queueUrl,并且希望利用为访问这些容器中的数据而配置的装入点时,才需要此选项。 借助此选项可以使用装入点重写 bucket/key 路径的前缀。 只能重写前缀。 例如,对于配置
{"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"},路径
s3://<databricks-mounted-bucket>/path/2017/08/fileA.json 会重写为 dbfs:/mnt/data-warehouse/2017/08/fileA.json
默认值: 无
cloudFiles.resourceTag
类型:Map(String, String)
一系列键值标记对,可帮助关联和识别相关资源,例如:
cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue")
.option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")
有关 AWS 的更多信息,请参阅 Amazon SQS 成本分配标记为 Amazon SNS 主题配置标记(1)
有关 Azure 的详细信息,请参阅命名队列和元数据以及properties.labels 的覆盖范围。 自动加载程序将这些键值标记对以 JSON 格式存储为标签。 (1)
(1)
默认值: 无
cloudFiles.useNotifications
类型:Boolean
是否使用文件通知模式来确定何时存在新文件。 如果为 false,则使用目录列表模式。 请参阅比较自动加载器文件检测模式
默认值:false

(1) 默认情况下,自动加载程序会尽量添加以下键值标记对:

  • vendorDatabricks
  • path:从中加载数据的位置。 由于标签限制,在 GCP 中不可用。
  • checkpointLocation:流检查点的位置。 由于标签限制,在 GCP 中不可用。
  • streamId:流的全局唯一标识符。

这些键名称是预留的,无法更改其值。

文件格式选项

使用自动加载程序,可引入 JSONCSVPARQUETAVROTEXTBINARYFILEORC 文件。

泛型选项

以下选项适用于所有文件格式。

选项
ignoreCorruptFiles
类型:Boolean
是否忽略损坏的文件。 如果为 true,则当遇到损坏的文件时,Spark 作业将继续运行,并且仍会返回已读取的内容。 可观测到,如 numSkippedCorruptFiles 中所示
Delta Lake 历史记录的 operationMetrics 列。 在 Databricks Runtime 11.3 LTS 及更高版本中可用。
默认值:false
ignoreMissingFiles
类型:Boolean
是否忽略缺少的文件。 如果为 true,则当遇到缺少的文件时,Spark 作业将继续运行,并且仍会返回已读取的内容。 在 Databricks Runtime 11.3 LTS 及更高版本中可用。
默认值:对于自动加载程序为 false,对于 true(旧版)为 COPY INTO
modifiedAfter
类型:Timestamp String,例如 2021-01-01 00:00:00.000000 UTC+0
一个可选时间戳,指示引入其修改时间戳晚于所提供的时间戳的文件。
默认值: 无
modifiedBefore
类型:Timestamp String,例如 2021-01-01 00:00:00.000000 UTC+0
一个可选时间戳,指示引入其修改时间戳早于所提供的时间戳的文件。
默认值: 无
pathGlobFilterfileNamePattern
类型:String
提供用来选择文件的一种潜在 glob 模式。 等效于
PATTERN(旧版)中的 COPY INTOfileNamePattern 可在 read_files 中使用。
默认值: 无
recursiveFileLookup
类型:Boolean
即使它们的名称不遵循日期=2019-07-01 等分区命名方案,此选项也会搜索嵌套目录。
默认值:false

JSON 选项

选项
allowBackslashEscapingAnyCharacter
类型:Boolean
是否允许反斜杠对其后面的任何字符进行转义。 如果未启用,则只能对按 JSON 规范显式列出的字符进行转义。
默认值:false
allowComments
类型:Boolean
是否允许在分析的内容中使用 Java、C 和 C++ 样式的注释('/''*''//' 变体)。
默认值:false
allowNonNumericNumbers
类型:Boolean
是否允许将非数字 (NaN) 标记集用作合法浮点数字值。
默认值:true
allowNumericLeadingZeros
类型:Boolean
是否允许整数以附加的(可忽略的)零开头(例如 000001)。
默认值:false
allowSingleQuotes
类型:Boolean
是否允许使用单引号(撇号字符 '\')来引用字符串(名称和字符串值)。
默认值:true
allowUnquotedControlChars
类型:Boolean
是否允许 JSON 字符串包含未转义的控制字符(值小于 32 的 ASCII 字符,包括制表符和换行符)。
默认值:false
allowUnquotedFieldNames
类型:Boolean
是否允许使用不带引号的字段名称(JavaScript 允许,但 JSON 规范不允许)。
默认值:false
badRecordsPath
类型:String
用于存储记录错误 JSON 信息的文件路径。
默认值: 无
columnNameOfCorruptRecord
类型:String
用于存储因格式不正确而无法分析的记录的列。 如果用于分析的 mode 设置为 DROPMALFORMED,则此列将为空。
默认值:_corrupt_record
dateFormat
类型:String
用于分析日期字符串的格式。
默认值:yyyy-MM-dd
dropFieldIfAllNull
类型:Boolean
在进行架构推理期间是否忽略所有 null 值或空数组和结构的列。
默认值:false
encodingcharset
类型:String
JSON 文件编码的名称。 有关选项列表,请参阅 java.nio.charset.Charset。 当 UTF-16UTF-32 时,不能使用 multilinetrue
默认值:UTF-8
inferTimestamp
类型:Boolean
是否尝试将时间戳字符串推理为 TimestampType。 设置
true 时,架构推理可能需要明显更长的时间。 必须启用 cloudFiles.inferColumnTypes 才能与自动加载程序一起使用。
默认值:false
lineSep
类型:String
两个连续 JSON 记录之间的字符串。
默认值:None,涵盖 \r\r\n\n
locale
类型:String
一个 java.util.Locale 标识符。 影响 JSON 中的默认日期、时间戳和十进制分析。
默认值:US
mode
类型:String
围绕处理格式错误的记录提供的分析程序模式。 'PERMISSIVE'
'DROPMALFORMED''FAILFAST' 中的一项。
默认值:PERMISSIVE
multiLine
类型:Boolean
JSON 记录是否跨多行。
默认值:false
prefersDecimal
类型:Boolean
如果可能,尝试将字符串推断为 DecimalType 而不是浮点型或双精度型。 还必须通过启用以下项来使用架构推理
inferSchema 或配合使用 cloudFiles.inferColumnTypes 和自动加载程序。
默认值:false
primitivesAsString
类型:Boolean
是否将数字和布尔值等基元类型推理为 StringType
默认值:false
readerCaseSensitive
类型:Boolean
指定启用 rescuedDataColumn 时区分大小写的行为。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。 可在 Databricks Runtime 中使用
13.3 及以上。
默认值:true
rescuedDataColumn
类型:String
是否将因数据类型不匹配或架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列。 使用自动加载程序时,默认包含此列。 有关更多详细信息,请参阅什么是补救的数据列?
COPY INTO(旧版)不支持已获救的数据列,因为无法使用 COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。
默认值: 无
singleVariantColumn
类型:String
是否引入整个 JSON 文档,解析为单个 Variant 列,并使用给定的字符串作为列名。 如果禁用,则 JSON 字段将导入至各自的列。
默认值: 无
timestampFormat
类型:String
用于分析时间戳字符串的格式。
默认值:yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
类型:String
分析时间戳和日期时要使用的 java.time.ZoneId
默认值: 无

CSV 选项

选项
badRecordsPath
类型:String
用于记录错误 CSV 记录相关信息的存储文件的路径。
默认值: 无
charToEscapeQuoteEscaping
类型:Char
用来对引号的转义字符进行转义的字符。 例如,对于以下记录:[ " a\\", b ]
  • 如果未定义用来对 '\' 进行转义的字符,则不会分析记录。 分析程序会将字符读取为 [a],[\],["],[,],[ ],[b],并引发错误,因为它找不到右引号。
  • 如果将转义 '\' 的字符定义为 '\',则记录将以 2 个值读取:[a\][b]

默认值:'\0'
columnNameOfCorruptRecord
支持自动加载程序。 不支持 COPY INTO(旧版)。
类型:String
用于存储因格式不正确而无法分析的记录的列。 如果用于分析的 mode 设置为 DROPMALFORMED,则此列将为空。
默认值:_corrupt_record
comment
类型:Char
定义表示行注释的字符(位于文本行的开头时)。 请使用 '\0' 来禁用注释跳过。
默认值:'\u0000'
dateFormat
类型:String
用于分析日期字符串的格式。
默认值:yyyy-MM-dd
emptyValue
类型:String
空值的字符串表示形式。
默认值:""
encodingcharset
类型:String
CSV 文件编码的名称。 有关选项列表,请参阅 java.nio.charset.Charset。 当 UTF-16UTF-32 时,不能使用 multilinetrue
默认值:UTF-8
enforceSchema
类型:Boolean
是否将指定的或推理出的架构强制应用于 CSV 文件。 如果启用此选项,则会忽略 CSV 文件的标题。 默认情况下,当使用自动加载程序来补救数据并允许架构演变时,会忽略此选项。
默认值:true
escape
类型:Char
分析数据时要使用的转义字符。
默认值:'\'
header
类型:Boolean
CSV 文件是否包含标题。 自动加载程序在推理架构时会假定文件具有标题。
默认值:false
ignoreLeadingWhiteSpace
类型:Boolean
是否忽略每个所分析值的前导空格。
默认值:false
ignoreTrailingWhiteSpace
类型:Boolean
是否忽略每个解析值的尾随空格。
默认值:false
inferSchema
类型:Boolean
是推断已解析 CSV 记录的数据类型,还是假定所有列都是 StringType 类型的。 如果设置为 true,则需要对数据进行另一轮操作。 对于自动加载程序,请改用 cloudFiles.inferColumnTypes
默认值:false
lineSep
类型:String
两个连续 CSV 记录之间的字符串。
默认值:None,涵盖 \r\r\n\n
locale
类型:String
一个 java.util.Locale 标识符。 影响 CSV 中的默认日期、时间戳和十进制分析。
默认值:US
maxCharsPerColumn
类型:Int
要分析的值预期包含的最大字符数。 可用于避免内存错误。 默认为 -1,表示无限制。
默认值:-1
maxColumns
类型:Int
记录可以包含的列数的硬限制。
默认值:20480
mergeSchema
类型:Boolean
是否在多个文件之间推断模式并合并每个文件的模式。 已默认在推理架构时为自动加载程序启用。
默认值:false
mode
类型:String
围绕处理格式错误的记录提供的分析程序模式。 'PERMISSIVE'
'DROPMALFORMED''FAILFAST'
默认值:PERMISSIVE
multiLine
类型:Boolean
CSV 记录是否跨多行。
默认值:false
nanValue
类型:String
分析 FloatTypeDoubleType 列时非数字值的字符串表示形式。
默认值:"NaN"
negativeInf
类型:String
分析 FloatTypeDoubleType 列时负无穷大的字符串表示形式。
默认值:"-Inf"
nullValue
类型:String
null 值的字符串表示形式。
默认值:""
parserCaseSensitive(已弃用)
类型:Boolean
读取文件时,将标题中声明的列与架构对齐时是否区分大小写。 对于自动加载程序,此项默认为 true。 如果启用,则会在 rescuedDataColumn 中补救大小写不同的列。 出于对 readerCaseSensitive 的偏好,已不推荐使用此选项。
默认值:false
positiveInf
类型:String
分析 FloatTypeDoubleType 列时正无穷大的字符串表示形式。
默认值:"Inf"
preferDate
类型:Boolean
如果可能,尝试将字符串推断为日期而不是时间戳。 还必须通过启用 inferSchema 或使用以下项来使用架构推理
cloudFiles.inferColumnTypes 与自动加载程序。
默认值:true
quote
类型:Char
当字段分隔符是值的一部分时用于对值进行转义的字符。
默认值:"
readerCaseSensitive
类型:Boolean
指定在启用 rescuedDataColumn 时的大小写敏感模式。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。
默认值:true
rescuedDataColumn
类型:String
是否将因数据类型不匹配和架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列。 使用自动加载程序时,默认包含此列。 有关更多详细信息,请参考什么是恢复的数据列?
COPY INTO(旧版)不支持已获救的数据列,因为无法使用 COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。
默认值: 无
sepdelimiter
类型:String
列之间的分隔符字符串。
默认值:","
skipRows
类型:Int
CSV 文件开头应忽略的行数(包括注释行和空行)。 如果 header 为 true,则标头将是第一个未跳过和未注释的行。
默认值:0
timestampFormat
类型:String
用于分析时间戳字符串的格式。
默认值:yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
类型:String
分析时间戳和日期时要使用的 java.time.ZoneId
默认值: 无
unescapedQuoteHandling
类型:String
用于处理未转义的引号的策略。 允许的选项:
  • STOP_AT_CLOSING_QUOTE:如果在输入中找到了未转义引号,则会累积引号字符并继续将值解析为带引号值,直到找到右引号。
  • BACK_TO_DELIMITER:如果在输入中找到了未转义引号,则将该值视为无引号值。 这会让分析程序累积当前所分析值的所有字符,直至找到 sep 定义的分隔符。 如果在值中找不到分隔符,则分析程序会继续从输入中累积字符,直到找到分隔符或行尾。
  • STOP_AT_DELIMITER:如果在输入中找到了未转义引号,则将该值视为无引号值。 这会让分析程序累积所有字符,直至在输入中找到 sep 定义的分隔符或找到行尾。
  • SKIP_VALUE:如果在输入中发现了未转义的引号,则将跳过针对给定值所解析的内容(直至找到下一个分隔符),并将改为生成 nullValue 中设置的值。
  • RAISE_ERROR:如果在输入中发现了未转义的引号,则
    会引发 TextParsingException

默认值:STOP_AT_DELIMITER

XML 选项

选项 说明 范围
rowTag 要作为行处理的 XML 文件的行标记。 在示例 XML <books> <book><book>...<books> 中,相应的值为 book。 这是必需选项。 读取
samplingRatio 定义用于架构推理的行的一部分。 XML 内置函数会忽略此选项。 默认:1.0 读取
excludeAttribute 是否排除元素中的属性。 默认:false 读取
mode 在解析过程中处理损坏的记录的一种模式。
PERMISSIVE:对于损坏的记录,将格式错误的字符串放入由 columnNameOfCorruptRecord 配置的字段中,并将格式错误的字段设置为 null。 若要保留损坏的记录,可以在用户定义的架构中设置名为 stringcolumnNameOfCorruptRecord 类型字段。 如果架构没有该字段,则会在分析期间删除损坏的记录。 推理架构时,分析程序会在输出架构中隐式添加 columnNameOfCorruptRecord 字段。
DROPMALFORMED:忽略损坏的记录。 XML 内置函数不支持此模式。
FAILFAST:分析程序遇到损坏的记录时引发异常。
读取
inferSchema 如果为 true,则尝试推断每个生成的 DataFrame 列的相应类型。 如果为 false,则生成的所有列均为 string 类型。 默认值:
true。 XML 内置函数会忽略此选项。
读取
columnNameOfCorruptRecord 允许对包含由不正确字符串创建的新字段进行重命名
PERMISSIVE 模式。 默认:spark.sql.columnNameOfCorruptRecord
读取
attributePrefix 属性的前缀,用于区分属性和元素。 这将是字段名称的前缀。 默认值为 _。 读取 XML 时可以为空,但写入时不能为空。 读取、写入
valueTag 该标记用于同时具有属性元素或子元素的元素中的字符数据。 用户可以在架构中指定 valueTag 字段,或者当字符数据存在于具有其他元素或属性的元素中时,该字段将在架构推断期间自动添加。 默认值:_VALUE 读取、写入
encoding 若要读取,请根据给定的编码类型解码 XML 文件。 对于写入,请指定已保存的 XML 文件的编码(字符集)。 XML 内置函数会忽略此选项。 默认:UTF-8 读取、写入
ignoreSurroundingSpaces 定义是否应跳过正在读取的值周围的空格。 默认:true。 将忽略只有空格的字符数据。 读取
rowValidationXSDPath 可选 XSD 文件的路径,用于单独验证每行的 XML。 未能通过验证的行视为上述解析错误。 XSD 不会以其他方式影响提供或推理的架构。 读取
ignoreNamespace 如果为 true,则忽略 XML 元素和属性上的命名空间前缀。 例如,标记 <abc:author><def:author> 会被视为只是 <author>。 不能忽略 rowTag 元素上的命名空间,只忽略其读取子元素。 XML 分析不识别命名空间,即使 false。 默认:false 读取
timestampFormat 遵循日期/时间模式格式的自定义时间戳格式字符串。 它适用于 timestamp 类型。 默认:yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] 读取、写入
timestampNTZFormat 遵循日期/时间模式格式的不带时区的自定义时间戳格式字符串。 这适用于 TimestampNTZType 类型。 默认值:
yyyy-MM-dd'T'HH:mm:ss[.SSS]
读取、写入
dateFormat 遵循日期/时间模式格式的自定义日期格式字符串。 这适用于日期类型。 默认:yyyy-MM-dd 读取、写入
locale 将地区设置为 IETF BCP 47 格式的语言标签。 例如,在分析日期和时间戳时使用 locale。 默认:en-US 读取
rootTag XML 文件的根标记。 例如,在 <books> <book><book>...</books> 中,相应的值为 books。 可以通过指定类似于 books foo="bar" 的值来包含基本属性。 默认:ROWS 写入
declaration 每个输出 XML 文件开头(rootTag 之前)要写入的 XML 声明内容。 例如,值 foo 会导致写入 <?xml foo?>。 设置为空字符串以禁用。 默认值:version="1.0"
encoding="UTF-8" standalone="yes"
写入
arrayElementName 写入时将数组值列的每个元素括起来的 XML 元素的名称。 默认:item 写入
nullValue 设置 null 值的字符串表示形式。 默认值:字符串 null。 当为 null 时,分析程序不会为字段写入属性和元素。 读取、写入
compression 保存到文件时使用的压缩代码。 这可以是已知不区分大小写的缩短名称之一(nonebzip2gziplz4snappy
deflate)。 XML 内置函数会忽略此选项。 默认:none
写入
validateName 如果为 true,则当 XML 元素名称验证失败时引发错误。 例如,SQL 字段名称可以有空格,但 XML 元素名称不能为空。 默认值:
true
写入
readerCaseSensitive 指定启用 rescuedDataColumn 时区分大小写的行为。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。 默认:true 读取
rescuedDataColumn 是否将因数据类型不匹配和架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列中。 使用自动加载程序时,默认包含此列。 有关详细信息,请参阅什么是被恢复的数据列?
COPY INTO(旧版)不支持已获救的数据列,因为无法使用 COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。
默认值:无。
读取

PARQUET 选项

选项
datetimeRebaseMode
类型:String
控制 DATE 和 TIMESTAMP 值在儒略历与外推格里历之间的基本值重定。 允许的值:EXCEPTIONLEGACY
CORRECTED
默认值:LEGACY
int96RebaseMode
类型:String
控制 INT96 时间戳值在儒略历与外推格里历之间的基本值重定。 允许的值:EXCEPTIONLEGACY
CORRECTED
默认值:LEGACY
mergeSchema
类型:Boolean
是否跨多个文件推理架构并合并每个文件的架构。
默认值:false
readerCaseSensitive
类型:Boolean
指定启用 rescuedDataColumn 时区分大小写的行为。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。
默认值:true
rescuedDataColumn
类型:String
是否将因数据类型不匹配和架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列。 使用自动加载程序时,默认包含此列。 有关更多详细信息,请参考什么是恢复的数据列?
COPY INTO(旧版)不支持已获救的数据列,因为无法使用 COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。
默认值: 无

AVRO 选项

选项
avroSchema
类型:String
用户以 Avro 格式提供的可选架构。 读取 Avro 时,可以将此选项设置为一个演变的架构,该架构与实际 Avro 架构兼容但不同。 反序列化架构会与演变的架构保持一致。 例如,如果你设置的演变架构包含一个具有默认值的附加列,则读取结果也会包含该新列。
默认值: 无
datetimeRebaseMode
类型:String
控制 DATE 和 TIMESTAMP 值在儒略历与外推格里历之间的基本值重定。 允许的值:EXCEPTIONLEGACY
CORRECTED
默认值:LEGACY
mergeSchema
类型:Boolean
是否在多个文件之间推断模式并合并每个文件的模式。
Avro 的 mergeSchema 不放宽数据类型。
默认值:false
readerCaseSensitive
类型:Boolean
指定启用 rescuedDataColumn 时区分大小写的行为。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。
默认值:true
rescuedDataColumn
类型:String
是否将因数据类型不匹配和架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列。 使用自动加载程序时,默认包含此列。
COPY INTO(旧版)不支持已获救的数据列,因为无法使用 COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。
有关更多详细信息,请参考什么是恢复的数据列?
默认值: 无

BINARYFILE 选项

二进制文件没有任何额外的配置选项。

TEXT 选项

选项
encoding
类型:String
TEXT 文件编码的名称。 有关选项列表,请参阅 java.nio.charset.Charset
默认值:UTF-8
lineSep
类型:String
两个连续 TEXT 记录之间的字符串。
默认值:None,涵盖 \r\r\n\n
wholeText
类型:Boolean
是否将文件读取为单个记录。
默认值:false

ORC 选项

选项
mergeSchema
类型:Boolean
是否跨多个文件推理架构并合并每个文件的架构。
默认值:false

特定于云的选项

自动加载程序提供许多用于配置云基础结构的选项。

AWS专用选项

只有选择了 cloudFiles.useNotifications = true 并且需要自动加载程序来设置通知服务时,才需要提供以下选项:

选项
cloudFiles.region
类型:String
源 S3 存储桶所在的、将创建 AWS SNS 和 SQS 服务的区域。
默认值:EC2 实例的区域。

仅当你选择 cloudFiles.useNotifications = true 并希望自动加载程序使用已设置的队列时,才提供以下选项:

选项
cloudFiles.queueUrl
类型:String
SQS 队列的 URL。 如果提供了此项,则自动加载程序会直接使用此队列中的事件,而不是设置自己的 AWS SNS 和 SQS 服务。
默认值: 无

AWS 身份验证选项

提供以下身份验证选项以使用 Databricks 服务凭据:

选项
databricks.serviceCredential
类型:String
Databricks 服务凭据的名称。
默认值: 无

当 Databricks 服务凭据或 IAM 角色不可用时,可以改为提供以下身份验证选项:

选项
cloudFiles.awsAccessKey
类型:String
用户的 AWS 访问密钥 ID。 必须与以下选项一起提供:
cloudFiles.awsSecretKey
默认值: 无
cloudFiles.awsSecretKey
类型:String
用户的 AWS 机密访问密钥。 必须与以下选项一起提供:
cloudFiles.awsAccessKey
默认值: 无
cloudFiles.roleArn
类型:String
要担任的 IAM 角色的 ARN(如果需要)。 可以从群集的实例配置文件或通过使用以下选项提供凭据来担任该角色:
cloudFiles.awsAccessKeycloudFiles.awsSecretKey
默认值: 无
cloudFiles.roleExternalId
类型:String
使用 cloudFiles.roleArn 担任角色时提供的标识符。
默认值: 无
cloudFiles.roleSessionName
类型:String
使用以下选项担任角色时使用的可选会话名称:
cloudFiles.roleArn
默认值: 无
cloudFiles.stsEndpoint
类型:String
一个可选终结点,用于在使用 cloudFiles.roleArn 担任角色时访问 AWS STS。
默认值: 无

特定于 Azure 的选项

如果指定 cloudFiles.useNotifications = true,并且希望自动加载程序设置通知服务,则必须为以下所有选项提供值:

选项
cloudFiles.resourceGroup
类型:String
在其下创建了存储帐户的 Azure 资源组。
默认值: 无
cloudFiles.subscriptionId
类型:String
创建资源组所用的 Azure 订阅 ID。
默认值: 无
databricks.serviceCredential
类型:String
Databricks 服务凭据的名称。
默认值: 无

如果 Databricks 服务凭据不可用,可以改为提供以下身份验证选项:

选项
cloudFiles.clientId
类型:String
服务主体的客户端 ID 或应用程序 ID。
默认值: 无
cloudFiles.clientSecret
类型:String
服务主体的客户端密钥。
默认值: 无
cloudFiles.connectionString
类型:String
存储帐户的连接字符串,基于帐户访问密钥或共享访问签名 (SAS)。
默认值: 无
cloudFiles.tenantId
类型:String
在其下创建了服务主体的 Azure 租户 ID。
默认值: 无

重要

自动通知设置在由世纪互联运营的 Azure 和具有 Databricks Runtime 9.1 及更高版本的政府区域中可用。 在较低的 DBR 版本的这些区域中,必须提供 queueName 才能将自动加载程序与文件通知配合使用。

仅当你选择 cloudFiles.useNotifications = true 并希望自动加载程序使用已设置的队列时,才提供以下选项:

选项
cloudFiles.queueName
类型:String
Azure 队列的名称。 如果提供了此项,则云文件源会直接使用此队列中的事件,而不是设置自己的 Azure 事件网格和队列存储服务。 在这种情况下,databricks.serviceCredentialcloudFiles.connectionString 只需要对队列具有读取权限。
默认值: 无