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

如何在Jupyter Notebook中用PySpark访问ADLS的Delta表并设置正确路径

在Jupyter Notebook中用PySpark访问ADLS Delta表的正确路径指定方法

一、ADLS Delta表的路径格式

ADLS分为Gen1和Gen2两个版本,路径格式完全不同,不能使用本地文件路径(比如/tmp/delta/people10m),必须使用对应版本的ADLS专属路径:

  • ADLS Gen1:adl://<ADLS-Gen1账户名>.azuredatalakestore.net/<Delta表文件夹路径>
  • ADLS Gen2:abfss://<文件系统名>@<ADLS-Gen2账户名>.dfs.core.windows.net/<Delta表文件夹路径>

二、先配置PySpark的ADLS访问权限

仅指定正确路径还无法访问,需要先配置认证信息,确保PySpark拥有ADLS的访问权限。以下是常用的服务主体(Service Principal)认证配置示例:

ADLS Gen2配置

# 替换为你的ADLS Gen2账户信息、服务主体信息
spark.conf.set("fs.azure.account.auth.type.your-adls-account.dfs.core.windows.net", "OAuth")
spark.conf.set("fs.azure.account.oauth.provider.type.your-adls-account.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
spark.conf.set("fs.azure.account.oauth2.client.id.your-adls-account.dfs.core.windows.net", "你的服务主体Client ID")
spark.conf.set("fs.azure.account.oauth2.client.secret.your-adls-account.dfs.core.windows.net", "你的服务主体Client Secret")
spark.conf.set("fs.azure.account.oauth2.client.endpoint.your-adls-account.dfs.core.windows.net", "https://login.microsoftonline.com/你的租户ID/oauth2/token")

ADLS Gen1配置

# 替换为你的服务主体信息
spark.conf.set("dfs.adls.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("dfs.adls.oauth2.client.id", "你的服务主体Client ID")
spark.conf.set("dfs.adls.oauth2.credential", "你的服务主体Client Secret")
spark.conf.set("dfs.adls.oauth2.refresh.url", "https://login.microsoftonline.com/你的租户ID/oauth2/token")

三、读取Delta表的示例代码

ADLS Gen2示例

假设你的ADLS Gen2账户名为mydatalake,文件系统是myfilesystem,Delta表存储在delta-tables/people10m文件夹下:

delta_path = "abfss://myfilesystem@mydatalake.dfs.core.windows.net/delta-tables/people10m"
df = spark.read.format("delta").load(delta_path)
df.show()

ADLS Gen1示例

假设你的ADLS Gen1账户名为mydatalakegen1,Delta表存储在delta-tables/people10m文件夹下:

delta_path = "adl://mydatalakegen1.azuredatalakestore.net/delta-tables/people10m"
df = spark.read.format("delta").load(delta_path)
df.show()

四、常见问题排查

  • 核对路径中的账户名、文件系统名、文件夹路径是否完全正确,避免拼写错误
  • 确认服务主体已被赋予ADLS的对应权限(比如Gen2的「Storage Blob Data Contributor」,Gen1的「Data Lake Storage Contributor」)
  • 检查Spark配置中的租户ID、Client ID、Client Secret是否准确
  • 若使用Azure Synapse或Databricks自带的Notebook,部分环境会自动配置ADLS访问,可直接使用相对路径;普通Jupyter环境必须手动完成认证配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:10:32