文档文档

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)}))

查看示例输入和输出


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像当前一样使用它,而无需对代码进行任何更改。

阅读更多

现已正式发布

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最新的数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看