使用 databricks 自动加载器从包含 .txt、.txt.parquet 和 .parquet 文件的 ADLS 目录中提取数据

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

我在 ADLS 中有一个位置,需要将数据从该位置提取到 Unity 目录中。 ADLS 中的此目录混合了 .txt、.txt.parquet 和 .parquet。 我正在使用自动加载器和 parquet 选项来获取这些数据。

CREATE STREAMING LIVE TABLE Example_raw
TBLPROPERTIES ("quality" = "bronze") 
AS SELECT * FROM cloud_files("/mnt/Example", "parquet");

但是 .txt 和 txt.parquet 文件的存在导致摄取失败。 自动加载器可以在一次摄取中处理多种文件类型吗?

谢谢

azure databricks databricks-sql databricks-unity-catalog
1个回答
0
投票

自动加载机一次只能处理一种文件格式。如果您的源具有多种文件格式(例如 Parquet 和文本),您可以使用

pathGlobFilter
选项来限制摄取哪些文件扩展名 - 但那些与过滤器匹配的文件扩展名必须与定义的格式匹配。因此,例如,
*.txt.parquet
文件实际上必须是 Parquet 文件。

我还没有测试下面的代码,但根据文档,指定

pathGlobFilter
仅摄取带有“.parquet”扩展名的文件将如下所示:

CREATE STREAMING LIVE TABLE Example_raw
TBLPROPERTIES ("quality" = "bronze") 
AS SELECT *
  FROM cloud_files(
    "/mnt/Example",
    "parquet"
   ),
   map("pathGlobFilter", "*.parquet");

请参阅文件格式选项下的AutoLoader语法和pathGlobFilter了解更多详细信息。

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