pivot() 函数
pivot()
收集垂直存储(按列)的唯一值,并将它们水平对齐(按行)到逻辑集中。
输出数据
结果表的组键与输入表相同,但不包括 columnKey
和 valueColumn
参数中找到的列。 这些列不属于结果输出表,并且从组键中删除。
每个输入行都应该与输出表中的特定行和列组合具有 1:1 的映射。 行和列的组合由 rowKey
和 columnKey
参数确定。 如果为同一行和列对标识了多个值,则在表行集中遇到的最后一个值将用作结果。
输出构建如下
- 新表的列集是
rowKey
与组键的并集,但不包括columnKey
和valueColumn
指示的列。 - 为
columnKey
参数标识的每个唯一值,将新列添加到列集中。 - 新列的标签是使用
_
作为分隔符的columnKey
值的串联。 如果值为 null,则使用“null”。 - 为
rowKey
参数标识的每个唯一值创建一个新行。 - 对于每个新行,组键列的值保持不变,而新列的值由输入表中
valueColumn
中rowKey
值和新列标签标识的行的值确定。 如果未找到任何值,则该值设置为null
。 - 未包含在组键中或未在
rowKey
、columnKey
和valueColumn
参数中指定的任何列都将被删除。
函数类型签名
(<-tables: stream[A], columnKey: [string], rowKey: [string], valueColumn: string) => stream[B] where A: Record, B: Record
有关更多信息,请参阅 函数类型签名。
参数
rowKey
(必需)用于唯一标识输出行的列。
columnKey
(必需)用于标识新输出列的列。
valueColumn
(必需)用于填充透视 columnKey
列的值的列。
tables
输入数据。 默认值为管道转发数据 (<-
)。
示例
根据时间将字段对齐到行
data
|> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
按时间将值与标签关联
import "sampledata"
sampledata.int()
|> pivot(rowKey: ["_time"], columnKey: ["tag"], valueColumn: "_value")
此页面是否对您有帮助?
感谢您的反馈!