You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dagster中为Output显式指定名称?

解决Dagster资产输出名称不匹配的错误

你遇到的错误是因为Dagster默认会为单输出资产创建一个名为result的输出定义,而你返回的Output指定了未预先声明的some_name,导致名称不匹配。解决方法是在@asset装饰器中显式声明输出名称,确保和返回的Output对象中的output_name一致。

方法1:修改单输出资产的默认输出名

通过@asset的output_defs参数声明自定义输出名称,再在返回时对应指定:

from dagster import asset, Output, OutputDefinition

@asset(output_defs=[OutputDefinition(name="some_name")])
def some_asset():
    output = "some_great_output"
    return Output(
        value=output,
        output_name="some_name",
    )

方法2:多输出资产的声明方式

如果需要多个输出,同样要先在output_defs里列出所有输出名称,再返回对应Output对象:

from dagster import asset, Output, OutputDefinition

@asset(
    output_defs=[
        OutputDefinition(name="first_output"),
        OutputDefinition(name="second_output")
    ]
)
def multi_output_asset():
    return [
        Output("first_value", output_name="first_output"),
        Output("second_value", output_name="second_output")
    ]

补充说明

如果只是希望修改资产在物化存储或UI中显示的标识,也可以通过OutputDefinition的其他参数(如io_manager_key)或@asset的key_prefix来调整,但核心原则是:返回的Output的output_name必须与资产定义中声明的输出名称完全一致。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:42:16