前几天,我花了五六个小时来尝试根据此处使用的方法来并行化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时完成。
如果任何人都可以勾勒出我应该如何正确地做这件事,而不是像我现在这样胡说八道,我将非常感激
答案 0 :(得分:0)
您是通过TaskB
方法还是通过run()
产生requires()
?在使用run()
方法时,我遇到了这个问题。原来,它产生的任务是由于其他原因而中断的,但是Luigi对于将完整的异常堆栈传播到run()
中产生的任务并不十分清楚。
要进行调试,请尝试调用luigi.build([TaskB])
并查看是否引发异常。如果您可以提供完整的异常堆栈,那将会有所帮助。