Python 路易吉-平行分支
我对路易吉完全是新手,我已经有了一个似乎无法解决的问题 假设我想要这样的东西: 所以基本上我的问题是:我怎样才能在一个任务中多次调用任意多个实例,甚至以相同的方式向每个“分支”添加其他任务 我知道它应该使用Python 路易吉-平行分支,python,parallel-processing,luigi,Python,Parallel Processing,Luigi,我对路易吉完全是新手,我已经有了一个似乎无法解决的问题 假设我想要这样的东西: 所以基本上我的问题是:我怎样才能在一个任务中多次调用任意多个实例,甚至以相同的方式向每个“分支”添加其他任务 我知道它应该使用requires()函数,例如通过return[范围(10)内x的任务列表] 或者类似的事情。但是我找不到正确的语法/方法 我希望有人能帮助我,我将非常感激 事先致以最良好的问候和感谢任务的唯一性由输出路径决定。如果输出路径相同,则任务相同。因此,您可以做的是使用不同的输出路径创建同一类的多
requires()
函数,例如通过return[范围(10)内x的任务列表]
或者类似的事情。但是我找不到正确的语法/方法
我希望有人能帮助我,我将非常感激
事先致以最良好的问候和感谢任务的唯一性由输出路径决定。如果输出路径相同,则任务相同。因此,您可以做的是使用不同的输出路径创建同一类的多个实例 在Luigi中执行此操作的推荐方法是向任务类添加一个参数,并在构建输出路径时使用此参数 比如说,
class TaskA(luigi.Task):
number = luigi.IntParameter()
def output():
base_path = 'path/to/a/dir'
file_name = '%5.5d.txt' % self.number
return LocalTarget(os.path.join(base_path, file_name))
现在,您可以通过以下方式在另一个任务中多次调用此任务:
class TaskB(luigi.Task):
def requires():
return [TaskA(i) for i in range(n)]
注意,第二次运行
TaskB
时,它对TaskA
的1到n的要求已经满足。如果您总是想再次执行TaskA
,则应在其输出路径中添加一些随机性。谢谢!这正是我要寻找的:)