unnest
使用 unnest 可以对输入列表进行扁平化以生成多条记录,列表中的每个元素都有一条记录。根据字段包含的项目数量,此命令会丢弃当前记录并生成新记录。每条记录都包含 unnested_field,它代表一个项目。其他所有字段均来自原始记录。
unnest 的输入是 LIST,它来自 jsonParse 函数。有关更多信息,请参阅结构类型。任何其他类型(例如,MAP、String 和 numbers)都被视为 unnest 中包含一个项目的列表。
命令结构
以下示例描述了此命令的格式。
unnest field into unnested_field
示例查询
以下示例解析了 JSON 对象字符串并展开字段事件列表。
fields jsonParse(@message) as json_message | unnest json_message.events into event | display event.name
此示例查询的日志事件可能是一个 JSON 字符串,如下所示:
{ "events": [ { "name": "exception" }, { "name": "user action" } ] }
在本例中,示例查询会在查询结果中生成两条记录,一条记录的 event.name 为 exception,另一条记录的 event.name 为 user action。
示例查询
以下示例会对列表进行扁平化,然后筛选出项目。
fields jsonParse(@message) as js | unnest js.accounts into account | filter account.type = "internal"
示例查询
以下示例会对列表进行扁平化以进行聚合。
fields jsonParse(trimmedData) as accounts | unnest accounts into account | stats sum(account.droppedSpans) as n by account.accountId | sort n desc | limit 10