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

Azure Synapse Notebook中PySpark读取ADLS文件报Py4JJavaError求助

解决Azure Synapse Notebook中PySpark读取ADLS Gen2文件的Py4JJavaError错误

错误根源

你遇到的Py4JJavaError本质是直接使用HTTPS协议访问ADLS Gen2文件系统导致的:Hadoop的AbstractHttpFileSystem不支持通过HTTPS URL执行文件列表等操作,必须使用ADLS Gen2专用的abfss协议。

解决方案

1. 替换文件路径协议

将原代码中的HTTPS路径替换为abfss格式路径,格式为:
abfss://<文件系统名称>@<存储账户名称>.dfs.core.windows.net/<文件路径>

修正后的代码:

%%pyspark
# 使用abfss协议访问ADLS Gen2
df=spark.read.load(path='abfss://filesys@adls4acc.dfs.core.windows.net/NYCTripSmall.parquet',format='parquet')
display(df.limit(10))
spark.sql("create database if not exists TEMPDB")
df.write.mode("overwrite").saveAsTable("TEMPDB.NycData")

2. 验证访问权限

确保Synapse工作区具备ADLS Gen2的访问权限:

  • 检查Synapse工作区的托管身份是否被授予ADLS Gen2容器的存储Blob数据参与者或存储Blob数据读者角色
  • 如果使用服务主体,需在Spark配置中添加对应的身份验证参数(Synapse托管身份为默认推荐方式)

补充说明

abfss是Azure为ADLS Gen2设计的Hadoop兼容文件系统协议,支持Spark完整的文件系统操作(列表、读写等),而HTTPS协议仅适用于REST API调用,无法被Spark的Hadoop文件系统客户端识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:03:30