使用Databricks访问Azure Data Lake时遇无效权限错误求助
问题核心
报错abfss://<stoarage-account>.dfs.core.windows.net has invalid authority的本质是存储账户地址格式不合法,结合你给出的Spark配置命令,首先能发现明显的语法疏漏:配置项fs.azure.account.key..dfs.core.windows.net里存储账户名的位置是空的(两个点连续),这直接导致Spark无法识别合法的存储账户域名。
排查修复步骤
1. 修正Spark配置命令的语法错误
你的配置命令缺失存储账户名,正确格式如下:
spark.conf.set("fs.azure.account.key.<你的存储账户名>.dfs.core.windows.net", dbutils.secrets.get(scope="<你的密钥范围>", key="<你的密钥名>"))
- 把
<你的存储账户名>替换为Azure门户中实际的存储账户名称 - 确保
<你的密钥范围>和<你的密钥名>对应你存储访问密钥的密钥范围与密钥名称
2. 核对存储账户名称的正确性
- 检查Azure存储账户名称拼写:存储账户名仅允许小写字母和数字,长度3-24位,确认没有拼写错误(比如报错里的
stoarage是storage的笔误,若实际配置中写错必须修正) - 确认存储账户已正常运行,没有被删除或暂停
3. 检查存储账户的网络访问规则
即便之前运行正常,也可能是存储账户的网络设置被修改:
- 登录Azure门户,进入存储账户的网络设置页面
- 若设置为「选定的网络」,需确认Databricks工作区的出站IP已添加到允许列表;可临时切换为「所有网络」测试,排除网络限制导致的问题
4. 验证访问密钥的有效性
- 进入存储账户的访问密钥页面,确认使用的密钥(key1或key2)未过期、未被禁用
- 若密钥已轮换,需更新Databricks密钥范围中的对应密钥值,再重新测试连接
5. 确认ABFSS路径格式
如果后续通过路径访问容器,需确保格式正确:
abfss://<容器名>@<存储账户名>.dfs.core.windows.net/<文件路径>
- 容器名称不可省略,且需确认容器已在存储账户中存在
内容的提问来源于stack exchange,提问作者hpal007
相关产品推荐
相关产品推荐

