- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个管道,其中后面的任务需要读取前面任务的输出,这样他们就可以知道他们需要在他们的要求中传递哪些参数。
我在下面创建了一个简化的设置示例。
import random
import pickle
import luigi
class WriteNumbers(luigi.Task):
def requires(self):
pass
def run(self):
# pickle a random list of ints 1-100
numbers = [random.randint(1, 100) for _ in range(100)]
pickle.dump(numbers, open("./numbers.pkl", 'wb'))
def output(self):
return luigi.LocalTarget("./numbers.pkl")
class SquareNumber(luigi.Task):
number = luigi.IntParameter()
def requires(self):
pass
def run(self):
# given a number as the parameter, write a file containing its square
with open("./squared_{}".format(self.number), 'w') as f:
f.write(str(self.number ** 2))
def output(self):
return luigi.LocalTarget("./squared_{}".format(self.number))
class SquareAll(luigi.WrapperTask):
def requires(self):
yield WriteNumbers() # require the number list to be pickled first
numbers = pickle.load("./numbers.pkl") # load the number list
for n in numbers: # square each number in the number list
yield SquareNumber(number=n)
class CubeNumber(luigi.Task):
number = luigi.IntParameter()
def requires(self):
pass
def run(self):
# given a number as the parameter, write a file containing its cube
with open("./cubed_{}".format(self.number), 'w') as f:
f.write(str(self.number ** 3))
def output(self):
return luigi.LocalTarget("./cubed_{}".format(self.number))
class CubeAll(luigi.WrapperTask):
def requires(self):
yield WriteNumbers() # require the number list to be pickled first
numbers = pickle.load("./numbers.pkl") # load the number list
for n in numbers: # square each number in the number list
yield CubeNumber(number=n)
class CrunchNumbers(luigi.WrapperTask):
def requires(self):
yield SquareAll()
yield CubeAll()
if __name__ == '__main__':
luigi.run()
当通过 python luigi_example.py CrunchNumbers
运行时,将创建 100 个随机数并将列表 pickle 并转储到磁盘。 SquareAll
加载该 pickled 列表并使用它来请求具有所需参数的 SquareNumber
任务。 CubeAll
为其类似任务引用相同的结果文件。
问题在于,运行时会抛出异常,因为 numbers.pkl
文件尚不存在。
我怎样才能让后面的任务根据前面任务的输出生成依赖项?我在这里使用随机数来表示无法提前知道输出:我的实际应用程序正在处理来自 API 的数据。
最佳答案
您正在使用 Dynamic Dependencies并且这些需要从 run
方法调用(当 requires
的结果可用作 input
时),所以 CubeAll
和 SquareAll
的结构应如下所示:
class SquareAll(luigi.WrapperTask):
def requires(self):
yield WriteNumbers() # require the number list to be pickled first
def run(self):
numbers_file = self.input()[0].path
numbers = pickle.load(numbers_file) # load the number list
for n in numbers: # square each number in the number list
yield SquareNumber(number=n)
关于python - 如何在 Luigi 中使用早期任务的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44359372/
文档说: If a parameter is created with significant=False, it is ignored as far as the Task signature is
用例:某些任务是耗时数小时的长批处理作业,需要在决定首先重新运行哪个日期之前查看给定日期的已完成内容和失败内容。 如何在不运行任何东西的情况下查看中央调度程序生成的依赖关系图?我确实意识到,我可以简单
我使用 Luigi Orchestrator 编写了以下 Python 代码。 class AggregateArtists(luigi.Task): date = luigi.DatePar
error: can't copy 'luigi\static\visualiser\lib\URI.js': doesn't exist or not a regular file --------
我是 Luigi 的新手,我创建了一个管道,它从数据库获取数据,转换数据,然后将其加载回数据库。我在其中创建了四个任务。但是,当我在 cmd 或 Pycharm 上执行任务时,它说它无法安排非任务。下
我在配置 luigi 每任务重试策略时遇到问题。我已按如下方式配置全局 luigi.cfg 文件: [scheduler] retry-delay: 1 retry_count: 5 [worker]
这是我第二次尝试了解如何在 Luigi 中将参数传递给依赖项。第一个是 here . 想法是:我有 TaskC,它依赖于 TaskB,它依赖于 TaskA,它依赖于 Task0。我希望整个序列始终完全
我试图用 luigi 建立一个管道。首先通过从 API 获取数据,转换然后将其保存到 mongo db。我还是 luigi 的新手,我的问题是如何实现 output() 函数,该函数指定输出到 mon
我想使用 Luigi 在我的 postgres 数据库上进行查询以获取纬度/经度坐标对,然后将该对传递给另一个任务。 我有一个任务 QueryPostgres() 将 SQL 字符串作为输入并执行查询
我有一个 luigi将我的原始数据拆分成较小文件的预处理任务。然后这些文件将由实际管道处理。 所以关于参数,我想要求每个管道都有一个预处理文件 ID 作为参数。但是,此文件 ID 仅在预处理步骤中生成
我对使用 Luigi 创建流程还比较陌生,我想了解为什么我的小工作流程会导致未实现的依赖关系。我正在尝试运行任务 StageProviders(),它有一个依赖项 ErrorsLogFile()。必须
我从 Luigi 开始,我想知道 Luigi 如何知道它不应该重新运行该任务,因为它已经使用相同的参数成功运行了。我通读了文档,但没有找到答案。 假设: Luigi 是否将状态(任务实例及其结果)存储
我正在研究一个 Luigi 管道,它检查是否存在手动创建的文件,如果存在,则继续执行下一个任务: import luigi, os class ExternalFileChecker(luigi.Ex
我已经通过 pip 命令安装了 luigi,我想更改 Web UI 的端口。我试图找到配置文件,但找不到。我需要创建一个吗? 最佳答案 您可以使用 --port 选项启动 luigid。 luigid
我正在尝试模拟为 luigi 参数提供默认值的东西。 一个愚蠢的例子展示了我想要完成的事情: 待测任务: import luigi from bar import Bar bar = Bar() cl
我正在使用 Luigi 启动一些管道。举个简单的例子 task = myTask() w = Worker(scheduler=CentralPlannerScheduler(), worker_pr
我正在编写一个管道,其中后面的任务需要读取前面任务的输出,这样他们就可以知道他们需要在他们的要求中传递哪些参数。 我在下面创建了一个简化的设置示例。 import random import pick
假设我有一个具有以下依赖结构的任务 class ParentTask(luigi.Task): def requires(self): return [ChildTask(cl
我正在为 Luigi Tasks 构建一个包装器,但遇到了 Register 的障碍。类实际上是一个 ABC 元类,当我创建动态 type 时不可选择. 以下代码或多或少是我用来开发动态类的代码。 c
我最近开始使用Luigi。当我运行工作流程时,所有任务都会显示在任务列表中,但依赖关系图仅显示一个空框架: 最佳答案 啊,刚刚发现它只显示特定任务的依赖关系图,而不是整个工作流程。因此,我必须选择一个
我是一名优秀的程序员,十分优秀!