全部文档
文档中心数据流3.0使用手册变量

变量

在各节点的配置中,经常会引用到前序节点的信息或全局配置的某些属性,我们提供了系统预置变量,以供在各节点配置时使用。

输入PY表达式时,进入代码框全屏状态,会在左侧展示可引用的预置变量。



完整的变量体系见下表(仅内部成员可见),外部用户可进入PY代码框全屏状态,会在左侧展示可引用的预置变量。

DPL_变量体系整理

在各节点的属性配置中,提供了很多输入代码或表达式的输入框,各输入框的代码语言可能不同,输入的代码需要符合对应语言的语法

不同语言的代码框中,引用预置变量的方法不同:

1、只有Python代码框支持直接输入变量名来引用预置变量;

2、其他的语言都要通过先定义参数或变量,再对其赋值,赋值方式选择Python语言,在Python中引用预置变量来实现。

各语言的引用案例,详见后续章节。


代码框的语言会展示在左上角,以DeepQL和Python为例:



除代码框外,也有输入表达式的配置项,会在占位提示该表达式的语言,以Python为例:



因为数据流组件是使用Python语言开发的,因此在使用Python语言的代码框或表达式框中,直接输入变量名即可引用预置变量

例如:

1、假设启动参数的JSON值为{"code": "code1", "name": "name1"},想要取得启动参数中code的值,则可以输入:Pipeline.params.code

2、节点 node1 是非数据集类型的节点,想要引用节点 node1 的运行结果,则可以输入:Operator.node1.data

3、节点 node1 是数据集类型的节点,想要引用该节点运行结果中的A列,且去重,得到一个列表,则可以输入:Operator.node1.data.df().A.drop_duplicates().tolist()

若要对数据进行更多处理,只要符合Python语法即可。

Py文本也是Python语言,但是规定了返回的结果必须是文本类型,而且可以直接输入文本,为了区分静态文本值和预置变量,需要将变量名用双花括号括起来

例如HTTP API节点基本都使用了Py文本框:



维度相关节点中,维度类型的赋值也是Py文本框,因此也可以引用表达式。



但是需要注意的是,不适用于静态文本中也存在花括号的场景,会导致无法识别变量。若静态文本中已有花括号了,建议直接用Python代码框而非文本框。



SQL中无法直接输入变量名来引用,需要:

1、在SQL中先用双花括号占位,在占位中定义参数,若同一个SQL框中需要定义多个参数,命名时不要重复;

2、对参数赋值,赋值时输入PY表达式,在PY表达式中可以直接输入预置变量名来引用。





与SQL同理,DeepQL中也无法直接输入变量名来引用,需要:

1、在DeepQL中先定义变量,定义的方法和在DeepModel中使用查询器时完全相同,详见DeepModel组件相关文档。如 <str>$var,其中 <str> 为声明类型,var 为变量名,且变量 var 必填;如 <optional str>$varoptional 表示变量 var 非必填;

2、对变量赋值,赋值时输入PY表达式,在PY表达式中可以直接输入预置变量名来引用。

赋值方式以PY表达式为例:



在Python代码框中,可以将需要评估的表达式用print打印到日志中查看,例如:



当然,也可以直接用【PY代码】节点调试来输出结果。以【条件分支】节点为例,需要在每个条件块中输入python代码,档代码较复杂时,则可以添加一个【PY代码】节点来辅助判断代码的正确性。



对于非Python语言专业用户的建议:在遇到任何需要输入Pyhton代码的配置时,可以寻求AI的代码建议,****

并先用【PY代码】节点来评估表达式是否正确!

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send