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

如何在Synapse Notebook中通过abfss://读取Azure Data Lake Gen2的Excel文件

在Azure Synapse Notebook中读取ADLS Gen2的Excel文件(abfss路径)

以下提供两种从零开始的完整实现方案,分别适配PySpark和Pandas,支持Synapse环境的abfss路径访问。

方案一:使用PySpark读取Excel

步骤1:安装必要依赖

在Synapse Notebook的首个代码单元格运行以下命令,安装PySpark读取Excel所需的库:

%pip install pyspark-excel openpyxl

注:若需读取旧版.xls格式文件,需额外安装xlrd==1.2.0(新版xlrd不再支持xlsx格式)。

步骤2:编写读取代码

利用com.crealytics.spark.excel格式读取abfss路径下的Excel文件,示例代码如下:

# 初始化Spark会话(Synapse中可省略,默认已配置)
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("ReadExcelADLS").getOrCreate()

# 读取Excel文件
excel_df = spark.read \
    .format("com.crealytics.spark.excel") \
    .option("header", "true")  # 是否将首行作为表头
    .option("inferSchema", "true")  # 是否自动推断列类型
    .option("dataAddress", "'Sheet1'!A1")  # 指定工作表和数据起始位置,可选
    .load("abfss://<容器名>@<存储账户名>.dfs.core.windows.net/文件路径/xxx.xlsx")

# 验证读取结果
excel_df.show(5)

可选:永久配置依赖

若不想每次启动Notebook都安装依赖,可在Synapse Spark池的包管理中添加:

  • PyPI包:pyspark-excel、openpyxl
  • 或Maven坐标:com.crealytics:spark-excel_2.12:0.13.5(需与Spark池的Scala版本匹配)

方案二:使用Pandas读取Excel

步骤1:安装依赖

Pandas本身不支持abfss协议,需安装adlfs和fsspec库实现路径解析,运行以下命令:

%pip install pandas openpyxl fsspec adlfs

注:读取.xls文件时替换openpyxl为xlrd==1.2.0。

步骤2:编写读取代码

直接使用Pandas的read_excel方法,传入abfss路径即可:

import pandas as pd

# 读取Excel文件
excel_df = pd.read_excel(
    "abfss://<容器名>@<存储账户名>.dfs.core.windows.net/文件路径/xxx.xlsx",
    sheet_name="Sheet1",  # 指定工作表名或索引
    header=0  # 指定表头行
)

# 验证读取结果
print(excel_df.head())

关键注意事项

  • 权限验证:确保Synapse工作区的托管标识(Managed Identity)拥有目标ADLS Gen2存储账户的Storage Blob Data Contributor权限(若已能读取CSV/Parquet,此权限通常已配置)。
  • 文件大小适配:PySpark适合处理大体积Excel文件,Pandas更适合小文件场景。
  • SAS令牌替代:若托管标识权限不足,可在abfss路径后拼接SAS令牌,格式为abfss://<容器名>@<存储账户名>.dfs.core.windows.net/路径/xxx.xlsx?<SAS令牌>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 13:43:11