赋值节点是一种特殊的节点类型,支持在节点中通过编写代码的方式对输出参数赋值,结合节点上下文传递,供下游节点引用和使用其取值。

说明 您需要购买DataWorks标准版及以上版本,方可使用赋值节点功能。

新建赋值节点

  1. 进入DataStudio(数据开发)页面,选择新建 > 控制 > 赋值节点
    赋值节点
    说明 您也可以找到相应的业务流程,右键单击控制,选择新建控制节点 > 赋值节点
    赋值节点
  2. 填写新建节点对话框中的配置。
    赋值节点
  3. 单击提交

编写赋值节点取值逻辑

赋值节点在节点上下文中有一个固定的名为outputs的输出参数。支持使用ODPS SQL、SHELL和Python三种语言来编写代码对参数进行赋值,其取值是节点代码的运行、计算结果。单个赋值节点只能选择一种语言。
赋值语言
说明
  • outputs参数的取值只取最后一行代码的输出结果。
    • ODPS SQL最后一行SELECT语句的输出。
    • SHELL最后一行ECHO语句的数据。
    • Python最后一行PRINT语句的输出。
  • outputs参数的取值有一定限制,其传递值最大为2M。如果赋值语句的输出结果超过此限制,则赋值节点会运行失败。

outputs

在下游节点使用赋值节点的输出

在下游节点中,添加赋值节点作为上游依赖后,通过节点上下文的方式,将赋值节点的输出定义为本节点的输入参数,并在代码中引用,即可取得上游赋值节点输出参数的具体取值。详情请参见节点上下文
节点上下文

赋值节点示例

  1. 创建业务流程,再分别创建下图中的节点。
    创建节点
  2. 配置赋值节点时,系统默认会显示一个outputs参数,运行后您在相关的运维中心 > 基本属性 > 上下文页面可以找到相关的参数结果。
    上下文
  3. 上游的outputs参数在下游作为下游的输入参数。
    输入参数

运行赋值节点任务

说明 通过运维中心的补数据运行,可以将上面的配置参数生效,但测试运行参数不能生效。
  1. 任务配置完提交调度,通常会在第二天产生运行实例。
    补数据运行
  2. 在运行时,您可以查看上下文的输入输出参数,单击后面的链接可以看到您的输入/输出结果。
    输出结果
  3. 在运行日志中,您可以通过finalResult查看代码的最后输出结果。
    查看结果

总结

说明 outputs输出您的代码中最后一条输出结果。

下文为您介绍ODPS SQL、SHELL和Python数组的常规用法,均以普通SHELL节点中的input参数输出结果。

  • ODPS SQL:支持二维数组和一维数组。
    ODPS
    查询的结果是一个二维数组,如下所示。
    2,this is name6
    1,this is name5
    SHELL中的输出代码,如下所示。
    输出代码
    输出结果如下所示。
    输出结果
  • SHELL:输出为一维数组。
    shell
    SHELL中的输出代码,如下所示。
    输出代码
    输出结果如下所示。
    输出结果
  • Python:输出为一维数组。
    Python
    SHELL中的输出代码,如下所示。
    输出代码
    输出结果如下所示。
    输出结果