Chi*_*mwe 6 python python-3.x airflow
我正在尝试帮助我的数据科学家团队使用气流运行他们的代码。我面临的问题是他们的 python 脚本会读/写一些中间文件。
1) 无论如何设置他们的脚本和文件可以存在的工作目录,以便它不会弄乱 dags 文件夹?
2)即使我使用 dag 文件夹,每次我读/写这些文件时我也必须指定绝对路径。除非有其他办法解决这个问题?
即我必须一直这样做:-
absolute_path="/some/long/directory/path"
f = os.path.join(absolute_path,file_name)
Run Code Online (Sandbox Code Playgroud)
我所做的是建立一个单独的文件夹,其中包含需要运行的所有模块,并将其添加到气流运行环境中。
PATH_MODULES = "/home/airflow-worker-1/airflow_modules/"
sys.path += [ PATH_MODULES ]
这样,我可以导入这些文件夹中的任何函数(前提是它们具有,__init__.py因为它们被视为包。
airflow_modules
|_ code_repository_1
|_ code_repository_2
|_ code_repository_3
|_ file_1.py
|_ config.py
Run Code Online (Sandbox Code Playgroud)
所以在你的 DAG 代码中你使用:
from code_repository_1.data_cleaning import clean_1
from code_repository_2.bigquery_operations import operation_1
Run Code Online (Sandbox Code Playgroud)
要记住的一件事是,由于这将存储库视为项目,因此如果您需要file_1.py从 导入变量config.py,那么您必须使用相对导入 with from .config import variable_1。
| 归档时间: |
|
| 查看次数: |
3427 次 |
| 最近记录: |