Azure Databricks中%run魔术命令无法找到文件路径如何解决
报错原因
该路径不存在错误的核心是调用路径与Notebook实际存储位置不匹配,常见触发场景如下:
- 你命令中填写的
/Users/name@comp.com/notebookB是个人用户专属目录的路径,该目录和工作区根目录为平级关系。既然两个Notebook都存放在工作区根文件夹,目标文件根本不在Users目录层级下,属于手敲路径时搞错了目录层级。 - Azure Databricks工作区路径严格区分大小写,手敲路径时只要文件夹名、Notebook名的大小写和实际命名有出入,就会触发文件找不到报错。
- 运行Notebook的身份对目标Notebook无读取权限时,部分Databricks版本不会直接返回无权限提示,会统一抛出路径不存在的错误。
- 若Notebook存放在Repos仓库中,
%run魔术命令不支持跨仓库调用,手写跨Repo的绝对路径必然报路径不存在。
解决方法
按以下优先级排查配置即可解决:
- 直接从UI复制准确路径:在工作区UI找到目标notebookB,右键点击文件选择「复制路径」,用系统生成的标准路径替换手写路径即可,能一次性规避目录层级错误、大小写错误。如果两个文件确实存放在工作区根目录,正确的调用命令为:
%run /notebookB $arg1=val1 $arg2=val2
- 同目录场景优先用相对路径:如果两个Notebook存放在同一个文件夹(包括同属根目录、同属个人目录、同属同一个Repos仓库),直接用相对路径调用,不需要写全绝对路径,出错概率更低,命令格式为:
%run ./notebookB $arg1=val1 $arg2=val2
- 校验访问权限:确认运行当前Notebook的身份(交互式运行即当前登录账号,作业运行即作业绑定的托管标识/服务主体),对notebookB及其所在文件夹持有「可读取」权限,无权限则联系工作区管理员开通即可。
- Repos场景注意调用边界:如果Notebook存放在Repos中,
%run仅支持调用同一Repo内的文件,不要尝试跨Repo写绝对路径调用。
你当前命令里的参数传参格式完全符合要求,不需要调整,路径和权限配置正确后即可正常运行。
内容的提问来源于stack exchange,提问作者sotn
相关产品推荐
相关产品推荐

