本文档主要介绍表格函数的语法规则,包括参数解释、函数示例等。
函数列表
类型 | 函数 | 说明 |
---|---|---|
文本到表格 | tab_parse_csv | 从CSV格式的文本构建表格。 |
表格到字典 | tab_to_dict | 从表格中构建字典。 |
tab_parse_csv
- 函数格式
tab_parse_csv(data, sep=',', quote='"', lstrip=True, headers=None, case_insensitive=True)
- 参数说明
参数名称 参数类型 是否必填 说明 data String 是 文本格式,一般是CSV格式。 sep String 否 CSV格式的分隔符,默认为逗号。 quote String 否 引用符,值中有分隔符时需要用引用符对值进行包裹隔离,默认双引号。 lstrip Bool 否 是否将每个关键字左边空格自动去除,默认为True。 headers String\String List 否 解析的每个域信息,默认从第一行提取。当第一行是数据时,需要通过这个参数传入,可以是字符串,也可以是字符串列表。 case_insensitive Bool 否 匹配时是否大小写不敏感,默认True。 - 返回结果
返回映射后的表格数据。
- 函数示例
- 示例1:直接构建,源Logstore中需要有表格中字段才能映射。
原始日志:
city: nanjing
加工规则:e_table_map(tab_parse_csv("province,city,pop,gdp\nshanghai,shanghai,2000,1000\njiangsu,nanjing,800,500"), "city", "province")
加工结果:city: nanjing province: jiangsu
- 示例2:多个字段映射。
原始日志:
city: nanjing province: jiangsu
加工规则:e_table_map(tab_parse_csv("province,city,pop,gdp\nshanghai,shanghai,2000,1000\njiangsu,nanjing,800,500"), ["province", "city"], ["pop", "gdp"])
加工结果:city: nanjing gdp: 500 pop: 800 province: jiangsu
- 示例3:多个字段映射与表格列名不一样。源字段括号内第一个是源字段,第二个是表格字段;目标字段括号内第一个是表格字段,第二个是新字段。
原始日志:
city: nanjing province: jiangsu
加工规则:e_table_map(tab_parse_csv("prov,city,pop,gdp\nshanghai,shanghai,2000,1000\njiangsu,nanjing,800,500"), [("province","prov"), "city"], [("pop", "population"), ("gdp", "GDP")])
加工结果:GDP: 500 city: nanjing population: 800 province: jiangsu
- 示例1:直接构建,源Logstore中需要有表格中字段才能映射。
tab_to_dict
- 函数格式
tab_to_dict(table, key_field, value_field, key_join=",", value_join=",")
- 参数说明
参数名称 参数类型 是否必填 说明 table 表格 是 表格数据信息。 key_field String\String List 是 用来构建字典关键字的表格列,多个时使用 key_join
拼接。value_field String\String List 是 用来构建字典值的表格列,多个时使用 value_join
拼接。key_join String 否 拼接多个列为Key的连接字符串,默认为逗号。 value_join String 否 拼接多个列为Value的连接字符串,默认为逗号。 - 返回结果
返回映射后的字典数据
- 函数示例
- 示例1
原始日志:
k1: v1 city: nj
加工规则:e_dict_map(tab_to_dict(tab_parse_csv("city,pop\nsh,2000\nnj,800"), "city", "pop"), "city", "popu")
加工结果:k1: v1 city: nj popu: 800
- 示例2
原始日志:
k1: v1 city: js,nj
加工规则:e_dict_map(tab_to_dict(tab_parse_csv("province,city,pop\nsh,sh,2000\njs,nj,800"), ["province", "city"], "pop"), "city", "popu")
加工结果:k1: v1 city: js,nj popu: 800
- 示例1