如何在Databricks notebook中向%run魔法命令传递变量形式的脚本路径
Databricks %run 魔法命令传递变量路径的实现方法
原生%run魔法命令本身不支持直接传入运行时的Python变量作为路径,因为它会在单元格解析阶段就处理路径参数,此时Python变量还未完成赋值,直接写%run $path会把$path当做字面量路径去查找,无法达到预期效果。
可行实现方案
你可以通过IPython内核提供的run_cell方法动态执行%run命令,既可以传入变量路径,又能保留被调用notebook的所有上下文(包括你需要的嵌套字典),不会出现dbutils.notebook.run的环境隔离问题:
- 首先定义你要调用的notebook路径变量
path = "/References/parameterDefinition/schemaRepository"
- 执行动态拼接的%run命令
get_ipython().run_cell(f'%run "{path}"')
效果说明
运行上述代码后,被调用notebook内的所有变量、函数、嵌套字典都会直接导入到当前主notebook的全局命名空间中,和写死路径的%run "/References/parameterDefinition/schemaRepository"效果完全一致。
注意事项
- 如果路径包含空格、特殊字符,一定要用引号包裹路径,避免解析错误
- 被调用notebook的全部代码都会正常执行,和手动运行该notebook的效果一致
内容的提问来源于stack exchange,提问作者ARCrow
相关产品推荐
相关产品推荐

