[英]Airflow BranchPythonOperator chaining
我正在尝试使用 Airflow BranchPythonOperator。 我得到了错误:
def next_task(x):
if x : return "branch_data"
else: return "branch_no_data"
branch_task = BranchPythonOperator(
task_id = 'branch_task',
python_callable = next_task,
op_args = [x],
dag = dag
)
branch_no_data=DummyOperator(task_id="branch_no_data", dag=dag)
branch_data=DummyOperator(task_id="branch_data", dag=dag)
join_task=DummyOperator(task_id="join_task", dag=dag)
branch_task >> [branch_data, branch_no_data ] >> join_task
我只需要执行 2 个任务(branch_data、branch_no_data)之一。 以下是我实施任务链接的失败尝试。 我得到了错误:
branch_task >> [branch_data, branch_no_data ] >> join_task
TypeError: unsupported operand type(s) for >>: 'BranchPythonOperator' and 'list'
Airflow 不允许您将列表链接到另一个任务。 一个任务可以 output 进入任务列表,但任务列表不能链接到单个任务。 因此, list
类型不支持>>
操作数的错误。
为了您自己的清晰和避免任何潜在问题,最好单独写出链而不列出列表。
可以使用的代码的 2 个版本是:
branch_task >> branch_data >> join_task
branch_task >> branch_no_data >> join_task
或者
branch_task >> [ branch_data, branch_no_data ]
branch_data >> join_task
branch_no_data >> join_task
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.