云日志服务 LTS-映射富化函数:e_table_map

时间:2024-09-12 17:22:59

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. 示例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. 示例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. 示例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. 示例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. 示例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. 示例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. 示例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. 示例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
  • 更多参考

    支持和其他函数组合使用。

support.huaweicloud.com/usermanual-lts/lts_07_0161.html