Databricks连接Azure ADLS Gen2时SAS令牌配置报错排查
错误原因及修复建议
核心问题:存储账户名拼写不一致
你配置的三个Spark参数中,存储账户的域名存在拼写差异:
- 前两个参数使用的是
adlsprexxxxx.dfs.core.windows.net - 第三个参数使用的是
adlsprexxxx.dfs.core.windows.net(比前两个少一个x)
Spark的ADLS Gen2配置是按存储账户名绑定的,账户名不匹配会导致系统无法找到对应fs.azure.account.auth.type的配置项,直接触发CONFIG_NOT_AVAILABLE错误。这是最可能的触发原因。
其他可能的诱因
依赖包缺失/版本不兼容
如果你的Spark环境未正确包含hadoop-azure、azure-storage-blob等ADLS Gen2相关依赖,或者依赖版本与Spark/Hadoop版本不匹配,会导致无法识别这类Azure存储配置参数。配置加载时机错误
若你是在SparkSession创建完成后才设置这些参数,部分运行环境可能无法动态加载新配置,需要在初始化SparkSession时就传入这些配置。
修复步骤
- 统一账户名:将三个参数中的存储账户域名修改为完全一致的字符串,确保无拼写差异。
- 检查依赖:确认环境中已包含对应版本的Hadoop Azure依赖包,比如Spark 3.3.x搭配Hadoop 3.3.x版本的
hadoop-azure包。 - 调整配置时机:尝试在初始化SparkSession时直接传入配置,示例代码:
from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("ADLS_Gen2_SAS_Connection") \ .config("fs.azure.account.auth.type.adlsprexxxxx.dfs.core.windows.net", "SAS") \ .config("fs.azure.sas.token.provider.type.adlsprexxxxx.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.sas.FixedSASTokenProvider") \ .config("fs.azure.sas.fixed.token.adlsprexxxxx.dfs.core.windows.net", "sv=2024-11-04&ss=bfqt&srt=sco&sp=rwdlacupyx&se=2025-08-16T18:19:19Z&st=2025-08-16T10:04:19Z&spr=https,http&sig=wI1gv8MdXkxAhe7BusFyvFkUT5sHDx7%2BCBBfzVKOxxxk%3D") \ .getOrCreate()
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

