Azure Databricks Delta Live Table如何导入相邻目录模块?
如何在Delta Live Table脚本中导入自定义模块
针对你的目录结构(root下包含mylibs/mylib.py和pipelines/mypipeline.py),无法获取脚本所在目录的情况下,有几种可靠的导入方式:
直接添加root目录到Python路径
在mypipeline.py开头加入以下代码,把root的绝对路径添加到Python的系统搜索路径里:import sys sys.path.append("/实际的root目录绝对路径") from mylibs.mylib import 你需要的函数或类这种方式最直接,只要路径正确就能导入,不受当前工作目录影响。
Databricks环境下直接导入
如果是在Databricks上运行Delta Live Table,只要你的root目录在Databricks工作区根路径下,直接用模块路径导入即可:from mylibs.mylib import 你需要的函数或类Databricks会自动将工作区内的目录纳入Python路径,无需额外配置。
通过当前工作目录推导root路径
如果不确定root的绝对路径,可以尝试从当前工作目录向上推导(假设当前工作目录是pipelines或root):import os import sys # 从当前工作目录跳转到root(如果当前在pipelines目录,跳一级;如果已经在root,这行不影响) root_dir = os.path.abspath(os.path.join(os.getcwd(), "..")) sys.path.append(root_dir) from mylibs.mylib import 你需要的函数或类这种方式能适配部分场景,但如果当前工作目录层级不确定,还是用绝对路径更稳妥。
内容的提问来源于stack exchange,提问作者Mathias Rönnlund
相关产品推荐
相关产品推荐

