流程控制函数

最近更新时间:2023-04-26 15:40:39

查看PDF

if函数

函数介绍

根据条件确定是否执行操作,可同时传入多组条件和操作,条件和操作必须成对出现。

语法描述

if(条件, 操作)
if(条件1, 操作1, 条件2, 操作2...)

参数说明

参数名称 参数类型 是否必填 参数描述
条件 任意 表达式或其组合
操作 全局操作函数 全局操作函数

示例1

根据条件提取需要的字段

原始日志

{"k1":"v1","k2":"v2","k3":"v3"}

加工规则

if(op_eq(v("k1"),"v1"),keep_fields("k1","k2"))

加工结果

{"k1":"v1","k2":"v2"}

示例2

根据条件删除行

原始日志

{"k1":"v1","k2":"v2","k3":"v3"},
{"k1":"v1.1","k2":"v2","k3":"v3"}

加工规则

if(op_eq(v("k1"),"v1"),drop())

加工结果

{"k1":"v1.1","k2":"v2","k3":"v3"}

if_else函数

函数介绍

根据条件执行相应的操作。

语法描述

if(条件, 真时操作,假时操作)

参数说明

参数名称 参数类型 是否必填 参数描述
条件 any 表达式或其组合
真时操作 全局操作函数 全局操作函数
假时操作 全局操作函数 全局操作函数

示例

原始日志

{"gender":0}

加工规则

if_else(v("gender"),set("dis_gender","男"),set("dis_gender","女"))

加工结果

{"gender":0,"dis_gender":"女"}

switch函数

函数介绍

多组条件和操作,满足其中任一条件,执行对应操作并返回。

语法描述

switch(条件1,操作1,条件2,操作2...,default=null)

参数说明

参数名称 参数类型 是否必填 参数描述
条件 any 表达式或其组合
操作 全局操作函数 全局操作函数
default 全局操作函数 全局操作函数

示例1
根据age的值设置age_group,如果age小于18设置为未成年,如果age大于等于18设置为成年。

原始日志

{"name":"ks","age":17},
{"name":"mike","age":35}

加工规则

switch(op_lt(v("age"),18),set("age_group","未成年"),op_ge(v("age"),18),set("age_group","成年"))

加工结果

{"name":"ks","age":17,"age_group":"未成年"}
{"name":"mike","age":35,"age_group":"成年"}

示例2

丢弃不符合要求的日志。

原始日志

{"type":"goods","size":123,"data":"content"},
{"type":"store","size":123,"data":"content"},
{"type":"unkonw","size":123,"data":"content"}

加工规则

switch(eq(v("type"),"goods"),keep(),eq(v("type"),"store"),keep(),default=drop())

加工结果

{"type":"goods","size":123,"data":"content"}
{"type":"store","size":123,"data":"content"}

compose函数

函数介绍

组合多个操作,多用于传参。

语法描述

compose(操作1,操作2...)

参数说明

参数名称 参数类型 是否必填 参数描述
操作 全局操作函数 全局操作函数

示例
如果content的值为123,则增加k1字段,然后删除name字段。

原始日志

{"name":"ks","content":"123"}

加工规则

if(op_eq(v("content"),"123"),compose(set("k1","v1"),drop_fields("name")))

加工结果

{"k1":"v1","content":"123"}

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈