如何在Airflow TaskFlowAPI中显式设置task_b依赖于task_a?
解决Airflow DAG任务依赖设置错误的问题
你遇到的错误是因为task_a和task_b是被@task装饰后的任务构造器(TaskDecorator对象),而非实际可用于设置依赖的Task实例。要设置任务依赖,你需要先调用这些装饰后的函数,得到具体的Task对象,再对实例使用>>操作符。
修改后的代码如下:
def my_dag(): @task def task_a(): # Some code here return @task def task_b(): # Some code here return # 保存任务调用后的实例 t_a = task_a() t_b = task_b() # 设置依赖:task_a成功后执行task_b t_a >> t_b my_dag_instance = my_dag()
核心改动点:
- 将
task_a()和task_b()的调用结果赋值给变量(t_a、t_b),这些变量才是真正的Task实例 - 对Task实例使用
>>操作符来定义上下游依赖关系,而不是直接用装饰后的函数本身
内容的提问来源于stack exchange,提问作者Diana Vazquez Romo
相关产品推荐
相关产品推荐

