databricks 复制到 xml 文件中

问题描述 投票:0回答:1

我正在尝试将一些原始 XML 文件从 azure blob 存储加载到增量表。

我已经安装了 blob 容器。

我的代码是:

CREATE TABLE bronze.my_xml_data;

COPY INTO bronze.my_xml_data
FROM 'dbfs:/mnt/my-container/data'
FILEFORMAT = XML
PATTERN = '*/some_dir/file_prefix_*.xml'
FORMAT_OPTIONS ('mergeSchema'='true', 'rowTag'='host', 'nullValue'='', 'valueTag'='val')
COPY_OPTIONS ('mergeSchema'='true')

我可以使用spark.read读取文件,所以我确信格式选项是正确的。

但是,我收到以下错误:

DeltaIllegalArgumentException: The format of the source files must be one of CSV, JSON, AVRO, ORC, PARQUET, TEXT, or BINARYFILE. Using COPY INTO on Delta tables as the source is not supported as duplicate data may be ingested after OPTIMIZE operations. This check can be turned off by running the SQL command `set spark.databricks.delta.copyInto.formatCheck.enabled = false`.

我尝试将此选项设置为 true,但随后出现另一个错误,即表没有列。

我做错了什么?

azure azure-blob-storage databricks azure-databricks
1个回答
0
投票

要将原始 XML 文件从 azure blob 存储加载到增量表,您可以使用以下代码。

%sql
CREATE  TABLE  temp_xml_data
USING  xml
OPTIONS (
path  "wasbs://[email protected]/sample.xml",
rowTag "book"
);

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.