map() 函数
map()
迭代并对输入行应用函数。
每个输入行都作为记录 r
传递给 fn
。每个 r
属性代表一个列键值对。输出值必须是以下支持的列类型
- float
- 整数
- 无符号整数
- string
- boolean
- time
输出数据
输出表是将 map 函数 (fn
) 应用于输入表的每个记录的结果。输出记录根据输入流的组键分配到新表。如果输出记录包含组键列的不同值,则记录将重新分组到相应的表。如果输出记录删除组键列,则该列将从组键中删除。
保留列
map()
删除任何未通过列标签显式映射或使用 fn
函数中的 with
运算符隐式映射的列。如果记录属性已存在,则 with
运算符会更新该属性;如果不存在,则创建新的记录属性,并将所有现有属性包含在输出记录中。
data
|> map(fn: (r) => ({ r with newColumn: r._value * 2 }))
函数类型签名
(<-tables: stream[A], fn: (r: A) => B, ?mergeKey: bool) => stream[B]
有关更多信息,请参阅 函数类型签名。
参数
fn
(必需) 应用于每个记录的单个参数函数。返回值必须是记录。
mergeKey
(已弃用) 合并映射记录的组键。默认为 false
。
tables
输入数据。默认为管道转发数据 (<-
)。
示例
计算每行值的平方
import "sampledata"
sampledata.int()
|> map(fn: (r) => ({r with _value: r._value * r._value}))
使用新列创建新表
import "sampledata"
sampledata.int()
|> map(
fn: (r) => ({time: r._time, source: r.tag, alert: if r._value > 10 then true else false}),
)
添加新列并保留现有列
在 r
记录上使用 with
运算符以保留未由 map 操作直接操作的列。
import "sampledata"
sampledata.int()
|> map(fn: (r) => ({r with server: "server-${r.tag}", valueFloat: float(v: r._value)}))
此页是否对您有帮助?
感谢您的反馈!