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

Azure Databricks写ADLS Gen2 Delta表报fs.azure.account.key错误如何解决

问题根因

你遇到的报错核心是Spark配置项与认证方式不匹配:你使用存储账户访问密钥访问ADLS Gen2,但错误配置了OAuth2客户端专用的参数,Spark无法找到合法的fs.azure.account.key配置项完成认证。

Failure to initialize configurationInvalid configuration value detected for fs.azure.account.key

解决方案

你可以根据实际使用的认证方式二选一:

方案1:继续使用存储账户访问密钥认证

直接替换你原有代码中的Spark配置段即可,其余读写逻辑无需修改:

// 注意:如果后续读写代码是Python语法,把开头的%scala替换为%python
%scala
spark.conf.set(
    "fs.azure.account.key.tempaccount.dfs.core.windows.net",
    "<替换为你的存储账户访问密钥>"
)

方案2:使用服务主体(OAuth2)认证

如果你需要用OAuth2方式认证,需要补全所有必填的配置项,注意此场景下填写的不是存储账户访问密钥,是服务主体的客户端密钥:

// 注意:如果后续读写代码是Python语法,把开头的%scala替换为%python
%scala
spark.conf.set("fs.azure.account.auth.type.tempaccount.dfs.core.windows.net", "OAuth")
spark.conf.set("fs.azure.account.oauth.provider.type.tempaccount.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
spark.conf.set("fs.azure.account.oauth2.client.id.tempaccount.dfs.core.windows.net", "<替换为你的服务主体应用ID>")
spark.conf.set("fs.azure.account.oauth2.client.secret.tempaccount.dfs.core.windows.net", "<替换为你的服务主体客户端密钥>")
spark.conf.set("fs.azure.account.oauth2.client.endpoint.tempaccount.dfs.core.windows.net", "https://login.microsoftonline.com/<替换为你的Azure租户ID>/oauth2/token")
注意事项
  • 生产环境禁止明文写密钥,建议通过Azure Databricks机密作用域存储敏感信息,用dbutils.secrets.get()方法调取。
  • 确保你使用的认证身份拥有目标ADLS Gen2容器的读写权限。
  • 你当前代码开头的%scala与后续Python语法的读写代码不匹配,若用Python开发请替换为%python,避免语法解析报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:15:07