对同一 DAG (Airflow) 中的不同任务使用不同的 pandas 版本
Use different pandas version for different tasks in the same DAG (Airflow)
假设我有两个任务使用两个版本,比方说,pandas
#my_task_one
import pandas as pd #Pandas 1.0.0
def f1(data):
.
.
return 0
和
#my_task_two
import pandas as pd #version 2.0.0
def f2(data):
.
.
return 0
在我的气流中(本地,没有 Docker),有没有办法为每个任务创建一个 venv 或需求文件,例如
#dag.py
t1 = PythonOperator(
task_id = "t1",
python_callable = f1,
requirements = "my_task_one_requirement.txt" #How to set requirements for this task?
)
t2 = PythonOperator(
task_id = "t2",
python_callable = f2,
requirements = "my_task_two_requirement.txt" #How to set requirements for this task?
)
t1>>t2
如果它不能在同一个 DAG 文件中,有没有办法指定给定 DAG 文件的要求,例如将 t1
和 t2
放在 [=16 中=] 和 DAG2
,但 packages/requirement-file?
Airflow 有 PythonVirtualenvOperator 适合此用例。
t1 = PythonVirtualenvOperator(
task_id="t1",
python_callable=f1,
requirements=["pandas==1.0.0"],
)
t2 = PythonVirtualenvOperator(
task_id="t2",
python_callable=f2,
requirements=["pandas==2.0.0"],
)
假设我有两个任务使用两个版本,比方说,pandas
#my_task_one
import pandas as pd #Pandas 1.0.0
def f1(data):
.
.
return 0
和
#my_task_two
import pandas as pd #version 2.0.0
def f2(data):
.
.
return 0
在我的气流中(本地,没有 Docker),有没有办法为每个任务创建一个 venv 或需求文件,例如
#dag.py
t1 = PythonOperator(
task_id = "t1",
python_callable = f1,
requirements = "my_task_one_requirement.txt" #How to set requirements for this task?
)
t2 = PythonOperator(
task_id = "t2",
python_callable = f2,
requirements = "my_task_two_requirement.txt" #How to set requirements for this task?
)
t1>>t2
如果它不能在同一个 DAG 文件中,有没有办法指定给定 DAG 文件的要求,例如将 t1
和 t2
放在 [=16 中=] 和 DAG2
,但 packages/requirement-file?
Airflow 有 PythonVirtualenvOperator 适合此用例。
t1 = PythonVirtualenvOperator(
task_id="t1",
python_callable=f1,
requirements=["pandas==1.0.0"],
)
t2 = PythonVirtualenvOperator(
task_id="t2",
python_callable=f2,
requirements=["pandas==2.0.0"],
)