Function Luigi:使用构建函数并行化Luigi任务时出错

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.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':
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 2

requires()
必须返回
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