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")
此页是否对您有帮助?
感谢您的反馈!