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

Synapse Notebook能否使用通配符?读取Parquet文件报错求助

Synapse Notebook读取Parquet通配符报错的解决方法

1. 补全storage_options认证信息

storage_options不能为空字符串,必须提供ADLS Gen2的访问凭证,否则会因权限不足触发文件找不到的错误。根据你的认证方式选择配置:

  • SAS令牌认证:
    storage_options = {'sas_token': '你的SAS令牌内容'}
    
  • 服务主体认证:
    storage_options = {
        'client_id': '客户端ID',
        'client_secret': '客户端密钥',
        'tenant_id': '租户ID'
    }
    

2. 修正通配符路径

你的目标路径是test/year={yyyy}/month={MM}/day={dd}/*.parquet,对应的精准通配符写法应该匹配分区目录的命名规则:

df = pd.read_parquet(
    'abfss://xxx@xxx.dfs.core.windows.net/test/year=*/month=*/day=*/*.parquet',
    storage_options=storage_options
)

如果需要递归匹配所有子目录下的Parquet文件,可使用**并开启递归:

df = pd.read_parquet(
    'abfss://xxx@xxx.dfs.core.windows.net/test/**/*.parquet',
    storage_options=storage_options,
    recursive=True
)

3. 安装必要依赖包

Pandas读取abfss协议的路径需要依赖fsspec和adlfs库,在Notebook中先执行安装命令:

!pip install fsspec adlfs

4. 改用PySpark读取(推荐方案)

Synapse原生支持PySpark,对Hive风格的分区目录(year={yyyy})支持更完善,能自动识别分区列,且读取大文件性能更优:

df = spark.read.parquet('abfss://xxx@xxx.dfs.core.windows.net/test/')
# 自动将year、month、day作为DataFrame字段
df.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:15:13