无法从Databricks Academy读取ADLS数据的原因及解决办法
解决Databricks Academy访问ADL训练数据的ADLException错误
错误原因
- 课堂配置脚本未完成权限初始化:
%run "./Includes/Classroom-Setup"本应自动配置ADL访问权限,但可能因内核重启、脚本执行中断或环境同步问题,导致Spark会话未获取到合法的访问令牌。 - ADL资源配置异常:目标ADL容器名称拼写错误、区域不匹配,或者课程训练数据未部署到指定路径,导致文件不存在。
- 会话上下文丢失:手动执行读取代码时,未继承课堂配置脚本生成的认证上下文,或会话过期后未重新初始化权限。
解决办法
- 重新执行课堂配置脚本并校验结果
- 重启笔记本内核,清除当前会话状态。
- 重新运行
%run "./Includes/Classroom-Setup",查看执行日志,确认无权限错误或路径错误提示。若脚本执行失败,根据日志提示修复(比如检查脚本路径是否正确)。
- 验证ADL路径与文件存在性
- 在Databricks工作区的「数据」模块中,通过ADL连接器访问
devszendsadlsrdpacqncd.azuredatalakestore.net,确认/dbacademy/people10m.parquet文件存在。 - 若文件缺失,联系Databricks Academy课程支持,确认当前学习环境的训练数据是否已完成部署。
- 在Databricks工作区的「数据」模块中,通过ADL连接器访问
- 临时手动配置ADL认证(仅测试用)
若课堂脚本无法自动配置,可临时手动设置认证参数(需确保拥有对应权限):
注意:正式学习场景优先依赖课堂配置脚本,避免手动管理敏感密钥。spark.conf.set("fs.adl.account.name", "devszendsadlsrdpacqncd.azuredatalakestore.net") spark.conf.set("fs.adl.oauth2.access.token.provider.type", "ClientCredential") spark.conf.set("fs.adl.oauth2.client.id", "<你的客户端ID>") spark.conf.set("fs.adl.oauth2.credential", "<你的客户端密钥>") spark.conf.set("fs.adl.oauth2.refresh.url", "https://login.microsoftonline.com/<租户ID>/oauth2/token") - 检查集群权限配置
确认当前使用的Databricks集群服务主体已被添加到ADL存储的访问控制列表(ACL)中,且拥有/dbacademy路径的读取权限。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

