文档文档

map() 函数

map() 对输入行进行迭代并应用一个函数。

每个输入行被传递给 fn 作为记录,r。每个 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}),
    )

查看示例输入和输出

添加新列并保留现有列

使用 with 操作符在 r 记录上以保留映射操作未直接操作的那些列。

import "sampledata"

sampledata.int()
    |> map(fn: (r) => ({r with server: "server-${r.tag}", valueFloat: float(v: r._value)}))

查看示例输入和输出


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 正在进入维护模式。您可以继续像现在一样使用它,无需对您的代码进行任何更改。

阅读更多

InfluxDB v3 增强和 InfluxDB 集群现在已公开发布

新功能包括更快的查询性能和管理工具的升级,推进了InfluxDB v3产品线的发展。InfluxDB集群版现在已普遍可用。

InfluxDB v3的性能与特性

InfluxDB v3产品线在查询性能方面进行了重大提升,并提供了新的管理工具。这些增强包括用于监控InfluxDB集群健康状态的运营仪表板、InfluxDB云专用版中的单点登录(SSO)支持,以及针对令牌和数据库的新管理API。

了解v3的新增强功能


InfluxDB集群版普遍可用

InfluxDB集群版现在已普遍可用,为您在自管理堆栈中提供InfluxDB v3的强大功能。

与我们探讨InfluxDB集群版