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

在Databricks中使用PySpark访问Azure ADLS Gen2的凭证配置问题

问题核心原因

你当前的配置存在3处明显错误,直接导致鉴权失败:

  • 认证类型配置值错误:fs.azure.account.auth.type的取值是固定字符串SAS,不能直接填入SAS URI
  • SAS token配置项错误:你使用的fs.azure.sas.token.provider.type是指定token提供类的参数,取值为固定类名,也不能直接填SAS URI
  • 存储协议与endpoint不匹配:dfs.core.windows.net是ADLS Gen2的ABFS协议endpoint,对应协议头应该用abfss://而非适用于普通Blob存储的wasbs://

正确配置步骤

第一步:替换错误的Spark配置项

# 1. 配置认证类型为SAS
spark.conf.set(f"fs.azure.account.auth.type.{STORAGE_ACCOUNT_NAME}.dfs.core.windows.net", "SAS")

# 2. 配置SAS token提供类为固定token模式
spark.conf.set(f"fs.azure.sas.token.provider.type.{STORAGE_ACCOUNT_NAME}.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.sas.FixedSASTokenProvider")

# 3. 配置实际的SAS token(如果你的SAS_URI带了开头的?,直接传入即可)
spark.conf.set(f"fs.azure.sas.fixed.token.{STORAGE_ACCOUNT_NAME}.dfs.core.windows.net", SAS_URI)

第二步:修正读取数据的协议头

把wasbs://替换为abfss://,示例代码:

sd_xxx = spark.read.parquet(f"abfss://{CONTAINER_NAME}@{STORAGE_ACCOUNT_NAME}.dfs.core.windows.net/{proper_path_to_files}")

额外排查项

如果配置后仍报错,优先检查以下内容:

  • SAS token的权限是否包含对应容器的读权限,过期时间是否有效
  • 存储账户防火墙是否放开了Databricks工作区的出站IP访问权限
  • 路径书写是否正确,不要多写多余的斜杠或者漏写层级

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:18:03