我是dagster的新手,很难解决这个问题。我必须在dagster管道中定义作业,并且希望将数据从一个作业的操作传递到另一个作业的操作
我的设置如下(简化示例)
job1.py
@op()
def generate_num():
return 3
@op()
def increase_num(generate_num):
return generate_num + 1
@job()
def increment_up():
increase_num(generate_num))
job2.py
@op()
def decrease_num(generate_num)
generate_num - 1
@op()
def multiple_num(decrease_num)
decrease_num * 2
@job()
def get_multiple():
multiple_num(decrease_num())
其中从“generate_num”返回的值被传递给job2.py。这样做完全是错误的吗?
2条答案
按热度按时间vjhs03f71#
有什么理由不能在第二个作业中重用
generate_num
吗?9lowa7mx2#
在Dagster中,考虑这个问题的典型方式是资产。即
generate_num
在第一个作业中产生并在第二个作业中使用的值将位于任何作业运行范围之外的持久存储中的某个地方。资产是持久存储中的对象,如文件或表。以下是共享一个资源的两个作业的示例:
运行第一个作业时,将为
num
和num_plus_one
创建一个文件。运行第二个作业时,它将使用num
文件的内容来计算num_multiplied
。