python - Python Luigi:处理缺失依赖的有效方法
问题描述
目前我正在使用 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 的数据。比我只想绘制一个工具中的数据。有没有一种优雅的方法来告诉函数如果缺少一个依赖项,它应该忽略该输入并与其余的一起工作?
到目前为止,我的想法是,首先检查那里有哪些数据,然后创建依赖于它的依赖项。
解决方案
luigi 的整个想法是,它确保任务的所有依赖项在运行之前都准备好。
它没有可选依赖的概念,但你可以有动态依赖
您的另一个选择可能analyzeTool1Data
是以这样一种方式定义任务,即使它失败或数据丢失,它仍然会生成输出,因此 luigi 仍然认为它们已经运行。
推荐阅读
- python - 从像素转换为通用公制(mm,in)
- java - java - 如何从java中的txt文件生成连续字符频率矩阵?
- java - 如何将 Mono 中的嵌套列表转换为 Flux?
- python - 在句子中正确使用 a 或 an
- java - 获取没有名为“jobLauncher”的bean可用异常
- excel - 如何使用户表单完成另一个用户表单?
- python - What is the proper way to verify if a filter was used by the user to be added to filters in the backend Django?
- javascript - Brain js NaN 时预测是单词的组合是一个完整的句子
- python - Tests from other files are run with unittest.main()
- r - Loop did not work when it worked without loop