Function Luigi:使用构建函数并行化Luigi任务时出错
我正在利用luigi.build方法尝试luigi的多处理能力。 但我在执行时遇到一些库错误 对于下一个自我添加(项目是否完成): 文件“/home/manoj/anaconda2/lib/python2.7/site packages/luigi/worker.py”,第604行,添加 自我验证依赖关系(d) 文件“/home/manoj/anaconda2/lib/python2.7/site packages/luigi/worker.py”,第622行,在“验证”依赖项中 引发异常('requires()必须返回任务对象') 这是我试图实现我的目标的一段代码 导入luigi TaskOne类(luigi.Task): custid=luigi.Parameter() def需要(自我): 通过 def输出(自): 返回luigi.LocalTarget(“logs/”+str(self.custid)+“\u success”) def运行(自): 将self.output()作为f打开('w'): f、 写入(“%s\n”%”) 第二类任务(luigi.Task): def需要(自我): CustomerList=['A'、'B'、'C'、'D'、'E'、'F'、'G'、'H'、'I'] 生成luigi.build([TaskOne(custid=cust\u id)用于CustomerList中的cust\u id],workers=2) def输出(自): 返回luigi.LocalTarget(“logs/totall_success.txt”) def运行(自): 将self.output()作为f打开('w'): f、 写入(“%s\n”%”成功) 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':Function Luigi:使用构建函数并行化Luigi任务时出错,function,build,parallel-processing,luigi,Function,Build,Parallel Processing,Luigi,我正在利用luigi.build方法尝试luigi的多处理能力。 但我在执行时遇到一些库错误 对于下一个自我添加(项目是否完成): 文件“/home/manoj/anaconda2/lib/python2.7/site packages/luigi/worker.py”,第604行,添加 自我验证依赖关系(d) 文件“/home/manoj/anaconda2/lib/python2.7/site packages/luigi/worker.py”,第622行,在“验证”依赖项中 引发异常('r
luigi.run()
class TaskTwo(luigi.Task):
def requires(self):
customersList = ['A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']
return [TaskOne(custid=cust_id) for cust_id in customersList]
如果需要多个辅助对象,可以在启动管道时在命令行中指定
luigi--模块化您的模块任务二--workers 2
为什么您认为需要内置requires
class TaskTwo(luigi.Task):
def requires(self):
customersList = ['A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']
return [TaskOne(custid=cust_id) for cust_id in customersList]
如果需要多个辅助对象,可以在启动管道时在命令行中指定
luigi--module您的\u module TaskTwo--worker 2requires()
必须返回luigi.Task
对象或luigi.Task
对象列表。但是,luigi.build()
不会返回任何内容。您不需要调用luigi.build
来显式运行任务,因为luigi自己处理运行需求。中概述的示例任务显示了它应该如何工作的基本范例
另外,您应该从TaskOne
中省略requires()
。如果它没有依赖项,则无需对其进行定义。requires()
必须返回一个luigi.Task
对象或一个luigi.Task
对象列表。但是,luigi.build()
不会返回任何内容。您不需要调用luigi.build
来显式运行任务,因为luigi自己处理运行需求。中概述的示例任务显示了它应该如何工作的基本范例
另外,您应该从TaskOne
中省略requires()
。如果它没有依赖项,那么就不需要定义它。在TaskTwo.requires
中,您应该返回TaskOne
的列表,而不是调用luigi.build
。另外,请查看,它将帮助您编写TaskTwo
。在TaskTwo.requires
中,您应该返回TaskOne
的列表,而不是调用luigi.build
。另外,请查看,它将帮助您编写TaskTwo
。