rows_near() 插件

查找指定条件附近的行。

该插件通过 evaluate 运算符调用。

语法

T| evaluaterows_near(Condition,NumRows, [,RowsAfter ])

参数

  • T:序列化的输入表格表达式。
  • Condition:布尔表达式,表示用于查找周围行的条件。
  • NumRows:要在条件前后查找的行数。
  • RowsAfter:(可选)指定后,将替代要在条件之后查找的行数。

返回

输入中与 Condition 为 true 的行的距离在NumRows 行以内的每一行。当指定 RowsAfter 时,返回输入中位于 Condition 为 true 的行前面 NumRows 行以内或后面 RowsAfter 行以内的每一行。

示例

查找“State”为 "Error" 的行,并返回 "Error" 记录之前和之后的 2 行。

datatable (Timestamp:datetime, Value:long, State:string )
[
    datetime(2021-06-01), 1, "Success",
    datetime(2021-06-02), 4, "Success",
    datetime(2021-06-03), 3, "Success",
    datetime(2021-06-04), 11, "Success",
    datetime(2021-06-05), 15, "Success",
    datetime(2021-06-06), 2, "Success",
    datetime(2021-06-07), 19, "Error",
    datetime(2021-06-08), 12, "Success",
    datetime(2021-06-09), 7, "Success",
    datetime(2021-06-10), 9, "Success",
    datetime(2021-06-11), 4, "Success",
    datetime(2021-06-12), 1, "Success",
]
| sort by Timestamp asc 
| evaluate rows_near(State == "Error", 2)
时间戳 状态
2021-06-05 00:00:00.0000000 15 成功
2021-06-06 00:00:00.0000000 2 成功
2021-06-07 00:00:00.0000000 19 错误
2021-06-08 00:00:00.0000000 12 成功
2021-06-09 00:00:00.0000000 7 成功