map() function
map()
iterates over and applies a function to input rows.
Each input row is passed to the fn
as a record, r
.
Each r
property represents a column key-value pair.
Output values must be of the following supported column types:
- float
- integer
- unsigned integer
- string
- boolean
- time
Output data
Output tables are the result of applying the map function (fn
) to each
record of the input tables. Output records are assigned to new tables based
on the group key of the input stream.
If the output record contains a different value for a group key column, the
record is regrouped into the appropriate table.
If the output record drops a group key column, that column is removed from
the group key.
Preserve columns
map()
drops any columns that are not mapped explicitly by column label or
implicitly using the with
operator in the fn
function.
The with
operator updates a record property if it already exists, creates
a new record property if it doesn’t exist, and includes all existing
properties in the output record.
data
|> map(fn: (r) => ({ r with newColumn: r._value * 2 }))
Function type signature
(<-tables: stream[A], fn: (r: A) => B, ?mergeKey: bool) => stream[B]
Parameters
fn
(Required) Single argument function to apply to each record. The return value must be a record.
mergeKey
(Deprecated) Merge group keys of mapped records. Default is false
.
tables
Input data. Default is piped-forward data (<-
).
Examples
- Square the value in each row
- Create a new table with new columns
- Add new columns and preserve existing columns
Square the value in each row
import "sampledata"
sampledata.int()
|> map(fn: (r) => ({r with _value: r._value * r._value}))
Create a new table with new columns
import "sampledata"
sampledata.int()
|> map(
fn: (r) => ({time: r._time, source: r.tag, alert: if r._value > 10 then true else false}),
)
Add new columns and preserve existing columns
Use the with
operator on the r
record to preserve columns not directly
operated on by the map operation.
import "sampledata"
sampledata.int()
|> map(fn: (r) => ({r with server: "server-${r.tag}", valueFloat: float(v: r._value)}))
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.