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

无需服务主体与AD应用注册,Databricks能否挂载ADLS Gen2?

无需服务主体挂载ADLS Gen2的解决方案

核心结论

可以不用注册Azure AD应用/服务主体,通过Azure Databricks的凭据传递功能实现ADLS Gen2的挂载或直接访问,但你遇到的IllegalArgumentException: Unsupported Azure Scheme: abfss错误是因为配置或使用方式有误,具体解决步骤如下:

错误原因分析

该错误通常出现在以下场景:

  • 集群未启用ADLS凭据传递功能
  • 挂载时的配置参数不符合凭据传递的要求
  • 存储账户的命名或路径格式存在问题

具体解决步骤

1. 启用集群的凭据传递

创建或编辑集群时,进入「高级选项」→「凭据传递」,勾选「启用Azure Data Lake Storage凭据传递」,重启集群后生效。

2. 修正挂载代码(无需服务主体)

凭据传递模式下,挂载不需要指定extra_configs(系统会自动使用当前登录Databricks的用户身份),修正后的代码示例:

def check_mount(mount_point):
    mounts = dbutils.fs.mounts()
    return any(mount.mountPoint == mount_point for mount in mounts)

mount = "/mnt/adls-gen2"
Lake = "<你的存储账户名>"

if check_mount(mount):
    resultMsg = f"<div>{mount} 已挂载。</div>"
else:
    dbutils.fs.mount(
        source = f"abfss://root@{Lake}.dfs.core.windows.net/",
        mount_point = mount
    )
    resultMsg = f"<div>{mount} 挂载成功。</div>"

print(resultMsg)

3. 确保用户权限

当前登录Databricks的用户需要在Azure AD中拥有ADLS Gen2存储账户/容器的对应权限(比如「存储Blob数据参与者」或更细粒度的权限),否则会出现权限不足的错误。

4. 替代方案:直接访问(无需挂载)

如果不需要挂载,也可以直接用abfss路径结合凭据传递访问数据,示例:

df = spark.read.csv("abfss://root@<存储账户名>.dfs.core.windows.net/path/to/data.csv")

注意事项

  • 凭据传递仅支持Databricks Runtime 5.5及以上版本
  • 若使用Azure Databricks Premium层,可结合Unity Catalog进一步简化权限管理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:22:48