首页 > 解决方案 > 基于三元运算符的 luigi 任务

问题描述

我有一个 DAG 如下所示的要求


                   -> Task C -> Task D
                  | 
Task A -> Task B -
                  |
                   -> Task E -> Task F

任务 B 有一个 python 三元运算符,它决定在运行时执行的方向/腿,即运行时流程将是(任务 C,任务 D)或(任务 E,任务 F)

我们如何在 luigi task requires function 下定义它?任何想法或代码片段将不胜感激。

标签: pythonluigi

解决方案


您可以定义动态依赖

我认为在您的示例中,您将有一项任务G取决于B并基于B产量CDE和的输出F

import luigi

class GTask(luigi.Task):
    def requires():
        return BTask()
    
    def run():
        if check_b_outout(self.input()):
            yield CTask()
            yield DTask()
        else:
            yield ETask()
            yield FTask()
            


推荐阅读