如何正确并行化Luigi中的类似任务

时间:2018-10-26 13:06:54

标签: pipeline data-science luigi

前几天,我花了五六个小时来尝试根据此处使用的方法来并行化Luigi中的某些工作:http://rjbaxley.com/posts/2016/03/13/parallel_jobs_in_luigi.html

我遇到的问题是我一直收到luigi.task_register.TaskClassAmbigiousException,这使我发疯。最终,我将luigi.auto_namespace(scope = name )放在了程序包的顶部,一切都开始起作用了,但我不知道为什么。粗略地描述,我有3个任务:

TaskA-无需任何操作         提供了带有路径的txt文件

TaskB-仅需要输入参数p1和p2         提供一个.csv文件

TaskC-需要任务A的输出         从输出A为每个路径对产生一个TaskB         完成所有产生的TaskB时完成。

如果任何人都可以勾勒出我应该如何正确地做这件事,而不是像我现在这样胡说八道,我将非常感激

1 个答案:

答案 0 :(得分:0)

您是通过TaskB方法还是通过run()产生requires()?在使用run()方法时,我遇到了这个问题。原来,它产生的任务是由于其他原因而中断的,但是Luigi对于将完整的异常堆栈传播到run()中产生的任务并不十分清楚。

要进行调试,请尝试调用luigi.build([TaskB])并查看是否引发异常。如果您可以提供完整的异常堆栈,那将会有所帮助。