适用于: Databricks SQL
 Databricks SQL  Databricks Runtime
 Databricks Runtime
将文件位置中的数据加载到 Delta 表中。 这是可重试的幂等操作 – 会跳过已经加载的源位置中的文件。 即使文件自加载以来已被修改也是如此。
有关示例,请参阅使用 COPY INTO 的常见数据加载模式。
语法
COPY INTO target_table [ BY POSITION | ( col_name [ , <col_name> ... ] ) ]
  FROM { source_clause |
         ( SELECT expression_list FROM source_clause ) }
  FILEFORMAT = data_source
  [ VALIDATE [ ALL | num_rows ROWS ] ]
  [ FILES = ( file_name [, ...] ) | PATTERN = glob_pattern ]
  [ FORMAT_OPTIONS ( { data_source_reader_option = value } [, ...] ) ]
  [ COPY_OPTIONS ( { copy_option = value } [, ...] ) ]
source_clause
  source [ WITH ( [ CREDENTIAL { credential_name |
                                 (temporary_credential_options) } ]
                  [ ENCRYPTION (encryption_options) ] ) ]
参数
- target_table- 标识现有的 Delta 表。 target_table不得包含临时规范或选项规范。 - 如果表名称以位置的形式提供(例如 - delta.`/path/to/table`),则 Unity 目录可以控制对写入到的位置的访问。 可以通过以下方式写入到外部位置:- 将位置定义为外部位置并提供对该外部位置的 - WRITE FILES权限。
- 拥有对命名存储凭据的 - WRITE FILES权限,以便提供使用- COPY INTO delta.`/some/location` WITH (CREDENTIAL <named-credential>)写入到某个位置的授权
 - 有关更多详细信息,请参阅 使用 Unity 目录连接到云对象存储 。 
- BY POSITION| (col_name [ , <col_name> … ] )- 按位置顺序将源列与目标表列匹配。 会自动完成匹配列的类型转换。 - 此参数仅支持无标头 CSV 文件格式。 需要指定 - FILEFORMAT = CSV。 还需要将- FORMAT_OPTIONS设置为- ("headers" = "false")(- FORMAT_OPTIONS ("headers" = "false")为默认值)。- 语法选项 1: - BY POSITION- 自动按位置顺序将源列与目标表列匹配。
- 该匹配不使用默认名称匹配。
- 匹配源列时,将忽略目标表的 IDENTITY列和GENERATED列。
- 如果源列数不等于筛选的目标表列,则 COPY INTO会引发错误。
 
 - 语法选项 2: - ( col_name [ , <col_name> ... ] )- 使用括号中的目标表列名称列表(用逗号分隔)按相对位置顺序将源列与指定的目标表列匹配。
- 匹配时不使用原始表列顺序和列名称。
- 列名称列表中不能指定 IDENTITY列和GENERATED列,否则COPY INTO会引发错误。
- 无法复制指定的列。
- 当源列数不等于指定的表列时,COPY INTO将引发错误。
- 对于未在列名称列表中指定的列,COPY INTO会分配默认值(如果有)或分配NULL(如果没有)。 如果有任何列不可为 null,COPY INTO将引发错误。
 
 
- 自动按位置顺序将源列与目标表列匹配。
- source- 要从中加载数据的文件位置。 此位置中的文件必须采用 - FILEFORMAT中指定的格式。 以 URI 的形式提供此位置。- 可通过以下命令提供对源位置的访问权限: - credential_name- 用于访问或写入存储位置的凭据的可选名称。 仅在文件位置未包含在外部位置中时才使用此凭据。 请参阅 credential_name。 
- 内联临时凭据。 
 - 将源位置定义为外部位置,并通过 Unity 目录提供对外部位置的 - READ FILES权限。
- 使用带 - READ FILES权限的命名存储凭据,这些权限提供通过 Unity 目录从位置进行读取所需的授权。
 - 如果路径已定义为你有权使用的外部位置,则无需提供内联或命名凭据。 有关更多详细信息 ,请参阅外部位置概述 。 - 注意 - 如果源文件路径为根路径,请在文件路径末尾添加斜杠 ( - /),例如- s3://my-bucket/。- 接受的凭据选项如下: - 适用于 ADLS 和 Azure Blob 存储的 AZURE_SAS_TOKEN
- 适用于 AWS S3 的 AWS_ACCESS_KEY、AWS_SECRET_KEY和AWS_SESSION_TOKEN
 - 接受的加密选项如下: - 适用于 AWS S3 的 TYPE = 'AWS_SSE_C'和MASTER_KEY
 
- SELECT expression_list- 在复制到 Delta 表之前,从源数据中选择指定的列或表达式。 表达式可以是与 - SELECT语句一起使用的任何内容,包括窗口操作。 你只能将聚合表达式用于全局聚合 - 你不能在使用此语法的列上使用- GROUP BY。
- FILEFORMAT = data_source- 要加载的源文件的格式。 - CSV、- JSON、- AVRO、- ORC、- PARQUET、- TEXT、- BINARYFILE之一。
- VALIDATE- 适用于: Databricks SQL 选中标记为“是” Databricks Runtime 10.4 LTS 及更高版本check marked yes - 要加载到表中的数据会经过验证,但不写入表中。 这些验证包括: - 是否可以解析数据。
- 架构是否与表匹配,或者架构是否需要演变。
- 是否满足所有可空性和检查约束。
 - 默认是验证所有要加载的数据。 你可以提供要使用 - ROWS关键字验证的行数,例如- VALIDATE 15 ROWS。 当小于 50 的数字与- COPY INTO关键字一起使用时,- ROWS语句返回 50 行或更少的数据的预览)。
- FILES- 要加载的文件名的列表,限制为 1000 个文件。 无法使用 - PATTERN进行指定。
- PATTERN- glob 模式,用于标识要从源目录加载的文件。 无法使用 - FILES进行指定。- 模式 - 说明 - ?- 匹配任何单一字符 - *- 与零个或多个字符匹配 - [abc]- 匹配字符集中的单个字符 {a,b,c}。 - [a-z]- 匹配字符范围 {a...z} 中的单个字符。 - [^a]- 匹配不是来自字符集或范围 {a} 的单个字符。 请注意, - ^字符必须立即出现在左括号的右侧。- {ab,cd}- 匹配字符串集 {ab, cd} 中的字符串。 - {ab,c{de, fh}}- 匹配字符串集 {ab, cde, cfh} 中的字符串。 
- FORMAT_OPTIONS- 要传递给指定格式的 Apache Spark 数据源读取器的选项。 请参阅每种文件格式的格式 选项 。 
- COPY_OPTIONS- 用于控制 - COPY INTO命令的操作的选项。- 
              force:布尔值,默认为false。 如果设置为true,则禁用幂等性并加载文件,而不管文件以前是否加载过。
- 
              mergeSchema:布尔值,默认为false。 如果设置为true,则架构可以根据传入的数据进行演变。
 
- 
              
并发调用 COPY INTO
              COPY INTO 支持对同一表进行并发调用。 只要对不同的输入文件集并发调用COPY INTO,每次调用最终都应成功,否则会导致事务冲突。 
              COPY INTO 不应并发调用以提高性能;具有多个文件的单个 COPY INTO 命令通常比分别具有单个文件的并发 COPY INTO 命令执行得更好。 
              COPY INTO 可在以下情况下并发调用:
- 多个数据生成者没有一种简单的协调方式,并且无法进行单个调用。
- 当可以逐子目录引入非常大的目录时。 引入包含大量文件的目录时,Databricks 建议尽可能使用 自动加载程序 。
访问文件元数据
若要了解如何访问基于文件的数据源的元数据,请参阅 “文件元数据”列。
格式选项
泛型选项
以下选项适用于所有文件格式。
| 选项 | 
|---|
| ignoreCorruptFiles类型: Boolean是否忽略损坏的文件。 如果为 true,则当遇到损坏的文件时,Spark 作业将继续运行,并且仍会返回已读取的内容。 可观测到,如 numSkippedCorruptFiles中所示Delta Lake 历史记录的 operationMetrics列。 在 Databricks Runtime 11.3 LTS 及更高版本中可用。默认值:30 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可选时间戳作为筛选器,用于仅引入在提供的时间戳之前具有修改时间戳的文件。 默认值:无 | 
| pathGlobFilter或fileNamePattern类型: String提供用来选择文件的一种潜在 glob 模式。 等效于 PATTERN(旧版)中的COPY INTO。fileNamePattern可在read_files中使用。默认值:无 | 
| recursiveFileLookup类型: Boolean即使它们的名称不遵循日期=2019-07-01 等分区命名方案,此选项也会搜索嵌套目录。 默认值:30 false | 
              JSON 选项
| 选项 | 
|---|
| allowBackslashEscapingAnyCharacter类型: Boolean是否允许反斜杠对其后面的任何字符进行转义。 如果未启用,则只能对按 JSON 规范显式列出的字符进行转义。 默认值:30 false | 
| allowComments类型: Boolean是否允许在分析的内容中使用 Java、C 和 C++ 样式的注释( '/'、'*'和'//'变体)。默认值:30 false | 
| allowNonNumericNumbers类型: Boolean是否允许将非数字 ( NaN) 标记集用作合法浮点数字值。默认值:30 true | 
| allowNumericLeadingZeros类型: Boolean是否允许整数以附加的(可忽略的)零开头(例如 000001)。默认值:30 false | 
| allowSingleQuotes类型: Boolean是否允许使用单引号(撇号字符 '\')来引用字符串(名称和字符串值)。默认值:30 true | 
| allowUnquotedControlChars类型: Boolean是否允许 JSON 字符串包含未转义的控制字符(值小于 32 的 ASCII 字符,包括制表符和换行符)。 默认值:30 false | 
| allowUnquotedFieldNames类型: Boolean是否允许使用不带引号的字段名称(JavaScript 允许,但 JSON 规范不允许)。 默认值:30 false | 
| badRecordsPath类型: String用于记录错误 JSON 记录相关信息的存储文件的路径。 在基于文件的数据源中使用 badRecordsPath选项有以下限制:
 默认值:无 | 
| columnNameOfCorruptRecord类型: String用于存储因格式不正确而无法分析的记录的列。 如果用于分析的 mode设置为DROPMALFORMED,则此列将为空。默认值:30 _corrupt_record | 
| dateFormat类型: String用于分析日期字符串的格式。 默认值:30 yyyy-MM-dd | 
| dropFieldIfAllNull类型: Boolean在进行架构推理期间是否忽略所有 null 值或空数组和结构的列。 默认值:30 false | 
| encoding或charset类型: StringJSON 文件编码的名称。 有关选项列表,请参阅 java.nio.charset.Charset。 当UTF-16为UTF-32时,不能使用multiline和true。默认值:30 UTF-8 | 
| inferTimestamp类型: Boolean是否尝试将时间戳字符串推理为 TimestampType。 设置为为 true时,架构推理可能需要明显更长的时间。 必须启用cloudFiles.inferColumnTypes才能与自动加载程序一起使用。默认值:30 false | 
| lineSep类型: String两个连续 JSON 记录之间的字符串。 默认值:None,涵盖 \r、\r\n和\n | 
| locale类型: String一个 java.util.Locale标识符。 影响 JSON 中的默认日期、时间戳和十进制分析。默认值:30 US | 
| mode类型: String围绕处理格式错误的记录提供的分析程序模式。 PERMISSIVE、DROPMALFORMED或FAILFAST之一。默认值:30 PERMISSIVE | 
| multiLine类型: BooleanJSON 记录是否跨多行。 默认值:30 false | 
| prefersDecimal类型: Boolean如果可能,尝试将字符串推断为 DecimalType而不是浮点型或双精度型。 还必须通过启用以下项来使用架构推理inferSchema或配合使用cloudFiles.inferColumnTypes和自动加载程序。默认值:30 false | 
| primitivesAsString类型: Boolean是否将数字和布尔值等基元类型推理为 StringType。默认值:30 false | 
| readerCaseSensitive类型: Boolean指定启用 rescuedDataColumn时区分大小写的行为。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。 在 Databricks Runtime13.3 及更高版本中可用。 默认值:30 true | 
| rescuedDataColumn类型: String是否将因数据类型不匹配或架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列。 使用自动加载程序时,默认包含此列。 有关更多详细信息,请参阅什么是恢复的数据列? COPY INTO(旧版)不支持已获救的数据列,因为无法使用COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。默认值:无 | 
| singleVariantColumn类型: String是否引入整个 JSON 文档,解析为单个 Variant 列,并使用给定的字符串作为列名。 如果禁用,则 JSON 字段将引入到自己的列中。 默认值:无 | 
| timestampFormat类型: String用于分析时间戳字符串的格式。 默认值:30 yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] | 
| timeZone类型: String分析时间戳和日期时要使用的 java.time.ZoneId。默认值:无 | 
              CSV 选项
| 选项 | 
|---|
| badRecordsPath类型: String用于记录错误 CSV 记录相关信息的存储文件的路径。 默认值:无 | 
| charToEscapeQuoteEscaping类型: Char用来对引号的转义字符进行转义的字符。 例如,对于以下记录: [ " a\\", b ]:
 默认值:30 '\0' | 
| columnNameOfCorruptRecord支持自动加载程序。 不支持 COPY INTO(旧版)。类型: String用于存储因格式不正确而无法分析的记录的列。 如果用于分析的 mode设置为DROPMALFORMED,则此列将为空。默认值:30 _corrupt_record | 
| comment类型: Char定义表示行注释的字符(位于文本行的开头时)。 请使用 '\0'来禁用注释跳过。默认值:30 '\u0000' | 
| dateFormat类型: String用于分析日期字符串的格式。 默认值:30 yyyy-MM-dd | 
| emptyValue类型: String空值的字符串表示形式。 默认值:30 "" | 
| encoding或charset类型: StringCSV 文件编码的名称。 有关选项列表,请参阅 java.nio.charset.Charset。 当UTF-16为UTF-32时,不能使用multiline和true。默认值:30 UTF-8 | 
| enforceSchema类型: Boolean是否将指定的或推理出的架构强制应用于 CSV 文件。 如果启用此选项,则会忽略 CSV 文件的标题。 默认情况下,当使用自动加载程序来补救数据并允许架构演变时,会忽略此选项。 默认值:30 true | 
| escape类型: Char分析数据时要使用的转义字符。 默认值:30 '\' | 
| header类型: BooleanCSV 文件是否包含标题。 自动加载程序在推理架构时会假定文件具有标题。 默认值:30 false | 
| ignoreLeadingWhiteSpace类型: Boolean是否忽略每个所分析值的前导空格。 默认值:30 false | 
| ignoreTrailingWhiteSpace类型: Boolean是否忽略每个所分析值的尾随空格。 默认值:30 false | 
| inferSchema类型: Boolean是推理所分析 CSV 记录的数据类型,还是假定所有列都是 StringType类型的。 如果设置为true,则需要对数据进行另一轮操作。 对于自动加载程序,请改用cloudFiles.inferColumnTypes。默认值:30 false | 
| lineSep类型: String两个连续 CSV 记录之间的字符串。 默认值:None,涵盖 \r、\r\n和\n | 
| locale类型: String一个 java.util.Locale标识符。 影响 CSV 中的默认日期、时间戳和十进制分析。默认值:30 US | 
| maxCharsPerColumn类型: Int要分析的值预期包含的最大字符数。 可用于避免内存错误。 默认为 -1,表示无限制。默认值:30 -1 | 
| maxColumns类型: Int记录可以包含的列数的硬限制。 默认值:30 20480 | 
| mergeSchema类型: Boolean是否跨多个文件推理架构并合并每个文件的架构。 已默认在推理架构时为自动加载程序启用。 默认值:30 false | 
| mode类型: String围绕处理格式错误的记录提供的分析程序模式。 'PERMISSIVE'、'DROPMALFORMED'和'FAILFAST'。默认值:30 PERMISSIVE | 
| multiLine类型: BooleanCSV 记录是否跨多行。 默认值:30 false | 
| nanValue类型: String分析 FloatType和DoubleType列时非数字值的字符串表示形式。默认值:30 "NaN" | 
| negativeInf类型: String分析 FloatType或DoubleType列时负无穷大的字符串表示形式。默认值:30 "-Inf" | 
| nullValue类型: Stringnull 值的字符串表示形式。 默认值:30 "" | 
| parserCaseSensitive(已弃用)类型: Boolean读取文件时,将标题中声明的列与架构对齐时是否区分大小写。 对于自动加载程序,此项默认为 true。 如果启用,则会在rescuedDataColumn中补救大小写不同的列。 已不推荐使用此选项,推荐使用readerCaseSensitive。默认值:30 false | 
| positiveInf类型: String分析 FloatType或DoubleType列时正无穷大的字符串表示形式。默认值:30 "Inf" | 
| preferDate类型: Boolean如果可能,尝试将字符串推断为日期而不是时间戳。 还必须通过启用 inferSchema或使用以下项来使用架构推理cloudFiles.inferColumnTypes与自动加载程序。默认值:30 true | 
| quote类型: Char当字段分隔符是值的一部分时用于对值进行转义的字符。 默认值:30 " | 
| readerCaseSensitive类型: Boolean指定启用 rescuedDataColumn时区分大小写的行为。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。默认值:30 true | 
| rescuedDataColumn类型: String是否将因数据类型不匹配和架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列。 使用自动加载程序时,默认包含此列。 有关更多详细信息,请参阅什么是恢复的数据列? COPY INTO(旧版)不支持已获救的数据列,因为无法使用COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。默认值:无 | 
| sep或delimiter类型: String列之间的分隔符字符串。 默认值:30 "," | 
| skipRows类型: IntCSV 文件开头应忽略的行数(包括注释行和空行)。 如果 header为 true,则标头将是第一个未跳过和未注释的行。默认值:30 0 | 
| timestampFormat类型: String用于分析时间戳字符串的格式。 默认值:30 yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] | 
| timeZone类型: String分析时间戳和日期时要使用的 java.time.ZoneId。默认值:无 | 
| unescapedQuoteHandling类型: String用于处理未转义的引号的策略。 允许的选项: 
 默认值:30 STOP_AT_DELIMITER | 
              XML 选项
| 选项 | 说明 | Scope | 
|---|---|---|
| rowTag | 要作为行处理的 XML 文件的行标记。 在示例 XML <books> <book><book>...<books>中,相应的值为book。 这是必需选项。 | 读取 | 
| samplingRatio | 定义用于架构推理的行的一部分。 XML 内置函数会忽略此选项。 默认: 1.0。 | 读取 | 
| excludeAttribute | 是否排除元素中的属性。 默认: false。 | 读取 | 
| mode | 在分析期间处理损坏记录的模式。 PERMISSIVE:对于损坏的记录,将格式错误的字符串放入由columnNameOfCorruptRecord配置的字段中,并将格式错误的字段设置为null。 若要保留损坏的记录,可以在用户定义的架构中设置名为string的columnNameOfCorruptRecord类型字段。 如果架构没有该字段,则会在分析期间删除损坏的记录。 推理架构时,分析程序会在输出架构中隐式添加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 | 保存到文件时使用的压缩代码。 这可以是已知不区分大小写的缩短名称之一( none、bzip2、gzip、lz4、snappy和deflate)。 XML 内置函数会忽略此选项。 默认:none。 | 写入 | 
| validateName | 如果为 true,则当 XML 元素名称验证失败时引发错误。 例如,SQL 字段名称可以有空格,但 XML 元素名称不能为空。 默认值: true。 | 写入 | 
| readerCaseSensitive | 指定启用 rescuedDataColumn 时区分大小写的行为。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。 默认: true。 | 读取 | 
| rescuedDataColumn | 是否将因数据类型不匹配和架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列中。 使用自动加载程序时,默认包含此列。 有关更多详细信息,请参阅什么是被恢复的数据列? COPY INTO(旧版)不支持已获救的数据列,因为无法使用COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。默认值:无。 | 读取 | 
| singleVariantColumn | 指定单个变体列的名称。 如果指定此选项用于读取,将整个 XML 记录解析为一个单个 Variant 列,并将该选项字符串值作为列名称。 如果为写入提供了此选项,则将单个 Variant 列的值写入 XML 文件。 默认: none。 | 读取、写入 | 
              PARQUET 选项
| 选项 | 
|---|
| datetimeRebaseMode类型: String控制 DATE 和 TIMESTAMP 值在儒略历与外推格里历之间的基本值重定。 允许的值: EXCEPTION、LEGACY和CORRECTED。默认值:30 LEGACY | 
| int96RebaseMode类型: String控制 INT96 时间戳值在儒略历与外推格里历之间的基本值重定。 允许的值: EXCEPTION、LEGACY和CORRECTED。默认值:30 LEGACY | 
| mergeSchema类型: Boolean是否跨多个文件推理架构并合并每个文件的架构。 默认值:30 false | 
| readerCaseSensitive类型: Boolean指定启用 rescuedDataColumn时区分大小写的行为。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。默认值:30 true | 
| rescuedDataColumn类型: String是否将因数据类型不匹配和架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列。 使用自动加载程序时,默认包含此列。 有关更多详细信息,请参阅什么是恢复的数据列? COPY INTO(旧版)不支持已获救的数据列,因为无法使用COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。默认值:无 | 
              AVRO 选项
| 选项 | 
|---|
| avroSchema类型: String用户以 Avro 格式提供的可选架构。 读取 Avro 时,可以将此选项设置为一个演变的架构,该架构与实际 Avro 架构兼容但不同。 反序列化架构会与演变的架构保持一致。 例如,如果你设置的演变架构包含一个具有默认值的附加列,则读取结果也会包含该新列。 默认值:无 | 
| datetimeRebaseMode类型: String控制 DATE 和 TIMESTAMP 值在儒略历与外推格里历之间的基本值重定。 允许的值: EXCEPTION、LEGACY和CORRECTED。默认值:30 LEGACY | 
| mergeSchema类型: Boolean是否跨多个文件推理架构并合并每个文件的架构。 Avro 的 mergeSchema不放宽数据类型。默认值:30 false | 
| readerCaseSensitive类型: Boolean指定启用 rescuedDataColumn时区分大小写的行为。 如果为 true,则拯救名称因大小写而与架构不同的数据列;否则,请以不区分大小写的方式读取数据。默认值:30 true | 
| rescuedDataColumn类型: String是否将因数据类型不匹配和架构不匹配(包括列大小写)而无法分析的所有数据收集到单独的列。 使用自动加载程序时,默认包含此列。 COPY INTO(旧版)不支持已获救的数据列,因为无法使用COPY INTO手动设置架构。 Databricks 建议对大多数引入方案使用自动加载程序。有关更多详细信息,请参阅什么是恢复的数据列? 默认值:无 | 
              BINARYFILE 选项
二进制文件没有任何额外的配置选项。
              TEXT 选项
| 选项 | 
|---|
| encoding类型: StringTEXT 文件行分隔符的编码的名称。 有关选项列表,请参阅 java.nio.charset.Charset。文件的内容不受此选项的影响,仍会读取as-is。 默认值:30 UTF-8 | 
| lineSep类型: String两个连续 TEXT 记录之间的字符串。 默认值:None,涵盖 \r、\r\n和\n | 
| wholeText类型: Boolean是否将文件读取为单个记录。 默认值:30 false | 
              ORC 选项
| 选项 | 
|---|
| mergeSchema类型: Boolean是否跨多个文件推理架构并合并每个文件的架构。 默认值:30 false |