You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指定LOCATION为文件夹时PolyBase未读取子文件夹文件,微软文档是否过时?

问题分析与解决

微软文档的描述并未过时,你遇到的问题是由于针对Azure Data Lake Storage Gen2的PolyBase需要显式开启递归扫描配置:

核心原因

当外部数据源为Azure Data Lake Storage Gen2时,PolyBase默认不会递归扫描子文件夹。文档中提到的“读取文件夹及其所有子文件夹内容”的默认行为,仅针对Hadoop类数据源生效;对于ADLS Gen2,必须手动添加参数开启递归。

修正后的代码

修改外部数据源的创建语句,加入RECURSIVE_FILES = ON参数:

CREATE EXTERNAL DATA SOURCE secureFiles
WITH (
    LOCATION = 'https://datalakeXXX.dfs.core.windows.net/files/',
    RECURSIVE_FILES = ON -- 启用子文件夹递归扫描
);
GO

CREATE EXTERNAL TABLE mytab(
    id INT,
    p_name VARCHAR(20),
    age INT
)
WITH(
    DATA_SOURCE=secureFiles,
    LOCATION= 'folder1/',
    FILE_FORMAT=CsvFormat
)
GO

SELECT * FROM mytab;

额外验证点

请确认子文件夹folder2、folder3下的文件名没有以下划线(_)或句点(.)开头——这类文件会被PolyBase自动忽略,这一点和文档描述完全一致。

内容的提问来源于stack exchange,提问作者user3579222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:32:10