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

如何不使用Spark直接从Azure Data Lake读取parquet文件

无需Spark直接读取Azure Data Lake Parquet文件的Python方案

前置依赖

首先安装需要的Python库:
pip install pandas dask adlfs azure-identity pyarrow

  • adlfs:基于fsspec实现的Azure Data Lake文件系统适配层,支持直接通过协议路径访问ADLS文件
  • pyarrow:Parquet文件的解析引擎
  • azure-identity:Azure身份认证工具,支持多种认证方式

身份认证配置

可以根据使用场景选择任意一种认证方式:

  • 测试场景:直接使用存储账户的访问密钥,配置最简单
  • 本地开发场景:本地安装Azure CLI后执行az login登录,代码无需额外配置密钥
  • 生产自动化场景:使用Azure AD服务主体进行认证,权限管控更安全

读取为Pandas DataFrame

单个Parquet文件读取

import pandas as pd
from adlfs import AzureBlobFileSystem

# 初始化ADLS Gen2文件系统实例
fs = AzureBlobFileSystem(
    account_name="替换为你的存储账户名",
    account_key="替换为你的存储账户访问密钥"
    # 若使用Azure CLI认证,删除account_key参数即可
)

# 直接读取文件内容到DataFrame,无本地文件落盘
with fs.open("替换为你的容器名/文件存放路径/xxx.parquet", "rb") as f:
    pd_df = pd.read_parquet(f)

批量读取同目录下所有Parquet文件

pd_df = pd.read_parquet(
    "abfs://替换为你的容器名/文件存放目录路径/",
    storage_options={
        "account_name": "替换为你的存储账户名",
        "account_key": "替换为你的存储账户访问密钥"
    }
)

读取为Dask DataFrame

Dask原生支持通过storage_options参数配置对象存储访问,代码更简洁:

import dask.dataframe as dd

dask_df = dd.read_parquet(
    "abfs://替换为你的容器名/文件存放目录路径/*.parquet",
    storage_options={
        "account_name": "替换为你的存储账户名",
        "account_key": "替换为你的存储账户访问密钥"
    }
)

# 需要触发计算时调用compute方法转为Pandas DataFrame
# pd_df = dask_df.compute()

补充说明:如果你使用的是较早的ADLS Gen1存储,将路径协议替换为adl://,同时额外安装azure-datalake-store库即可使用相同逻辑读取


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:54:00