DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递

赋值节点支持ODPS SQLSHELLPython三种语言来编写代码,赋值节点自带outputs输出,可结合节点上下文功能实现上下游参数传递。DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递
不同语言outputs赋值情况如下:

  • outputs参数的取值只取最后一行代码的输出结果。

    • ODPS SQL最后一行SELECT语句的输出。
    • SHELL最后一行ECHO语句的数据。
    • Python最后一行PRINT语句的输出。
  • outputs参数的传递值最大为2M。如果赋值语句的输出结果超过此限制,则赋值节点会运行失败。

注意:python和shell的输出会基于逗号切割成一维数组。
         odpssql将输出结果作为一个二维数组传递到下游。

赋值节点参数传递示例

业务流程概览:在xc_赋值节点取值对比_shell节点中分别输出赋值节点中使用python、sql、shell编辑的最后一行代码输出结果。
下游引用上游传递的参数需要先设置依赖关系。
DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递

下游引用赋值节点(ODPS SQL)输出示例

上游节点配置:

当前赋值节点节点名为xc_fuzhi_sql,赋值语言为ODPS SQL。
DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递
赋值节点将该表的查询结果作为节点输出赋值给赋值节点自带的输出参数outputs。
赋值节点查询结果如下:
DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递

下游节点配置

下游shell节点节点名为 xc_赋值节点取值对比_shell,下游节点依赖赋值节点xc_fuzhi_python,引用上游赋值节点xc_fuzhi_sql自带的输出outputs作为下游节点的输入,并命名为sql_inputs。
DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递
取上游赋值节点odps sql最后的输出结果:'${sql_inputs}'
取上游赋值节点odps sql输出的第1行数据:${sql_inputs[0]}
取上游赋值节点odps sql输出的第2行数据:${sql_inputs[1]}
取上游赋值节点odps sql输出的第1行第2个字段:${sql_inputs0}
取上游赋值节点odps sql输出的第1行第2个字段:${sql_inputs1}

结果展示

DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递

下游引用赋值节点(Python)输出示例

上游节点配置:

当前赋值节点节点名为xc_fuzhi_python,赋值语言为python。
DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递
赋值节点使用赋值语言python将最后print的结果'a,b,c'赋值给赋值节点自带的输出参数outputs。

下游节点配置:

下游shell节点节点名为 xc_赋值节点取值对比_shell,下游节点依赖赋值节点xc_fuzhi_python,引用上游赋值节点xc_fuzhi_python自带的输出outputs作为当前下游节点的输入,并命名为python_inputs。
DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递取上游赋值节点python最后的输出结果:${python_inputs}
取上游赋值节点python输出的第1个数据:${python_inputs[0]}

取上游赋值节点python输出的第2个数据:${python_inputs[1]};

结果展示

DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递

下游引用赋值节点(shell)输出示例

上游节点配置:

当前赋值节点节点名为xc_fuzhi_shell,赋值语言为shell。
DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递

下游节点配置:

下游shell节点节点名为 xc_赋值节点取值对比_shell,下游节点依赖赋值节点xc_fuzhi_shell,引用上游赋值节点xc_fuzhi_shell自带的输出outputs作为下游节点的输入,并命名为shell_inputs。
DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递
取上游赋值节点shell最后的输出结果:${shell_inputs}
取上游赋值节点shell输出的第1个数据:${shell_inputs[0]};
取上游赋值节点shell输出的第2个数据:${shell_inputs[1]};

结果展示

DataWorks百问百答14:赋值节点结合节点上下文实现上下游参数传递

DataWorks百问百答历史记录请点击查看

更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】

上一篇:samba服务器的简单配置


下一篇:【云周刊】第204期:2019年开发者必读!20位阿里技术大牛们帮你列了一份经典书单!