Python 根据条件重新运行某些成功的气流任务

Python 根据条件重新运行某些成功的气流任务,python,pyspark,hive,airflow,airflow-scheduler,Python,Pyspark,Hive,Airflow,Airflow Scheduler,例如,我有一个任务a、B和C的Dag。目前C依赖于a和B。问题是,我正在试图找到一种方法1)在a或B成功后运行C,这样C中的一些列将被刷新。2) 假设A首先完成,C成功执行一次。现在B已经完成了。现在如何触发C再次运行?这是让c运行两次所需的行为。C可能比A和B有2个以上的依赖项。有什么方法可以增量更新C,并在满足更多条件后使其重新运行? 作业A、B和C是Spark作业或配置单元sql。非常感谢你的帮助 在A或B成功后运行C,以便刷新C中的某些列。2) 假设A首先完成,C成功执行一次。现在B已经

例如,我有一个任务a、B和C的Dag。目前C依赖于a和B。问题是,我正在试图找到一种方法1)在a或B成功后运行C,这样C中的一些列将被刷新。2) 假设A首先完成,C成功执行一次。现在B已经完成了。现在如何触发C再次运行?这是让c运行两次所需的行为。C可能比A和B有2个以上的依赖项。有什么方法可以增量更新C,并在满足更多条件后使其重新运行? 作业A、B和C是Spark作业或配置单元sql。非常感谢你的帮助

  • 在A或B成功后运行C,以便刷新C中的某些列。2) 假设A首先完成,C成功执行一次。现在B已经完成了。我现在如何触发A再次运行
  • 答案是肯定的。在C任务中,我会考虑使用<代码> ALLYOND 规则。这样,它将始终在A和B之后运行(无论结果如何)。但是,如果所有任务都失败,则可能需要调整任务C以使其正常工作

    我现在如何触发A再次运行?C可能比A和B有2个以上的依赖项。有什么方法可以增量更新C,并在满足更多条件后使其重新运行

    为此,请从Airflow Web UI执行以下操作:

  • 将任务C标记为失败
  • 用选项“上游”和“失败”清除任务C:

  • 这将重新运行所有失败的任务(A或B或C上游的任何其他任务)以及C(因为我们将其标记为失败)。

    谢谢!对不起,也许我没有解释清楚。问题是,我有点想
    一次成功
    ,这样C将在A或B完成后运行,而当另一个完成时,我确实希望C再次运行。如何实现这一点?因此,让C运行两次是理想的行为,然后在每个a和B任务之后创建一个“C”任务,这样您将有C_a、C_B任务等等。你们可以在循环中这样做,这是气流的风格。