Airflow动态DAG创建:无法找到Task2的问题求助
问题原因及解决方法
核心原因
DatabricksWorkflowTaskGroup属于Airflow的TaskGroup实现,它会自动给内部所有任务的task_id加上组ID前缀(格式为{group_id}.{task_id})。你显式设置的task2会被重命名,比如如果TaskGroup的group_id是work_flow_group,实际任务ID会变成work_flow_group.task2,直接用task2调用dag.get_task()自然找不到目标任务。
解决方法
使用带前缀的完整任务ID:先确认TaskGroup的
group_id,拼接成完整ID后再调用get_task()# 假设TaskGroup的group_id为"work_flow_group" full_task_id = f"{work_flow_task_group.group_id}.task2" target_task = work_flow_task_group.dag.get_task(full_task_id)直接通过TaskGroup实例获取任务:TaskGroup自身提供
get_task()方法,可直接传入原始task_id获取任务target_task = work_flow_task_group.get_task("task2")关闭TaskGroup的ID前缀(Airflow 2.3及以上版本支持):创建DatabricksWorkflowTaskGroup时添加
prefix_group_id=False参数,内部任务的task_id将保持你设置的原始值with DatabricksWorkflowTaskGroup( group_id="work_flow_group", prefix_group_id=False, dag=dag ) as work_flow_task_group: # 在此定义task1至task5的逻辑
内容的提问来源于stack exchange,提问作者user3348557
相关产品推荐
相关产品推荐

