云日志服务 LTS-映射富化函数:e_table_map
e_table_map
与目标表格进行映射,根据输入的字段名称返回字段值。
- 函数格式
e_table_map(data, field, output_fields, missing=None, mode="fill-auto")
- 参数说明
参数名称
数据类型
是否必填
说明
data
Table
是
目标表格。
field
String、String List或Tuple List
是
日志中映射到表格的源字段。如果日志中不存在对应字段,则不进行任何操作。
output_fields
String、String List或Tuple List
是
映射后的字段。例如["province", "pop"]。
missing
String
否
无匹配字段时,将该参数的取值赋给输出字段output_fields。默认为None表示不做映射赋值操作。如果目标字段是多列,则missing可以是一个长度与目标字段数一致的默认值列表。
说明 如果表格中包含匹配星号(*),由于星号(*)的优先级高于missing,此时missing参数将不起作用。
mode
String
否
字段的覆盖模式。默认为fill-auto。
- 返回结果
返回附带新字段值的日志。
- 函数示例
- 示例1:在映射表格中查找对应行,根据city字段返回province字段的值。
- 测试数据
{ "data": 123, "city": "nj" }
- 加工规则
e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), "city", "province" )
- 加工结果
data: 123 city: nj province: js
- 测试数据
- 示例2:在映射表格中查找对应行,根据city字段返回province字段和pop字段的值。
- 测试数据
{ "data": 123, "city": "nj" }
- 加工规则
e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), "city", ["province", "pop"], )
- 加工结果
data: 123 city: nj province: js pop: 800
- 测试数据
- 示例3:使用tab_parse_csv函数构建映射表格,根据city字段返回province字段和pop字段的值。
- 测试数据
{ "data": 123, "city": "nj" }
- 加工规则
e_table_map( tab_parse_csv("city#pop#province\nnj#800#js\nsh#2000#sh", sep="#"), "city", ["province", "pop"], )
- 加工结果
data: 123 city: nj province: js pop: 800
- 测试数据
- 示例4:使用tab_parse_csv函数构建映射表格,根据city字段返回province字段和pop字段的值。
- 测试数据
{ "data": 123, "city": "nj" }
- 加工规则
e_table_map( tab_parse_csv( "city,pop,province\n|nj|,|800|,|js|\n|shang hai|,2000,|SHANG,HAI|", quote="|" ), "city", ["province", "pop"], )
- 加工结果
data: 123 city: nj province: js pop: 800
- 测试数据
- 示例5:日志匹配字段与映射表格中字段不一样。在映射表格中查找对应行,根据cty或city字段返回province字段的值。
- 测试数据
{ "data": 123, "city": "nj" }
- 加工规则
e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), [("city", "city")], "province" )
- 加工结果
data: 123 city: nj province: js
- 测试数据
- 示例6:日志匹配字段与映射表格中字段不一样,并且对输出字段进行重命名。
- 测试数据
{ "data": 123, "city": "nj" }
- 加工规则
e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), [("city", "city")], [("province", "pro")], )
- 加工结果
data: 123 city: nj pro: js
- 测试数据
- 示例7:多个日志匹配字段。
- 测试数据
{ "data": 123, "city": "nj", "pop": 800 }
- 加工规则
e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), ["city", "pop"], "province", )
- 加工结果
data: 123 city: nj pop: 800 province: js
- 测试数据
- 示例8:多个日志匹配字段,且日志匹配字段与映射表格字段不一样。
- 测试数据
{ "data": 123, "city": "nj", "pp": 800 }
- 加工规则
e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), [("city", "city"), ("pp", "pop")], "province", )
- 加工结果
data: 123 city: nj pp: 800 province: js
- 测试数据
- 示例1:在映射表格中查找对应行,根据city字段返回province字段的值。
- 更多参考
支持和其他函数组合使用。