【问题标题】:Python Luigi: Efficent way to handle missing dependenciesPython Luigi:处理缺失依赖项的有效方法
【发布时间】:2020-08-25 23:09:41
【问题描述】:

目前我正在使用 Luigi 库来创建数据管道。在我的管道结束时,我有一个 Plot 函数,它看起来像这样:

class PlotAll(luigi.Task):
...
    def requires(self):
        return{
            "tool1" : analyzeTool1Data(...),
            "tool2" : analyzeTool2Sata(...)}
    def run(self):
        data1 = numpy.load(self.input()["tool1"])
        data2 = numpy.load(self.input()["tool2"])
        plot(data1, data2)
        
...

所以现在有时我只有来自 Tool1 的数据,或者我只有来自 Tool2 的数据。比我只想绘制一个工具中的数据。有没有一种优雅的方法来告诉函数如果缺少一个依赖项,它应该忽略该输入并与其余的一起工作?

到目前为止,我的想法是,首先检查那里有哪些数据,然后创建依赖于它的依赖项。

【问题讨论】:

    标签: python luigi


    【解决方案1】:

    luigi 的整体理念是确保任务的所有依赖项在运行之前都准备就绪。

    它没有可选依赖的概念,但你可以有dynamic dependencies

    您的另一个选择可能是定义任务analyzeTool1Data,即使它失败或数据丢失,它仍然会生成输出,因此 luigi 仍然认为它们已经运行。

    【讨论】:

      猜你喜欢
      • 2020-05-10
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多