Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

collect_map

aggregate map values into a single map

Synopsis

collect_map(map{any:any}) -> map{any:any}

Description

The collect_map aggregate function combines map inputs into a single map output. If collect_map receives multiple values for the same key, the last value received is retained. If the input keys or values vary in type, the return type will be a map of union of those types.

Examples

Combine a sequence of records into a map:

# spq
collect_map(map{stock:price})
# input
{stock:"APPL",price:145.03}
{stock:"GOOG",price:87.07}
# expected output
map{"APPL":145.03,"GOOG":87.07}

Create maps by key:

# spq
collect_map(map{stock:price}) by day | sort
# input
{stock:"APPL",price:145.03,day:0}
{stock:"GOOG",price:87.07,day:0}
{stock:"APPL",price:150.13,day:1}
{stock:"GOOG",price:89.15,day:1}
# expected output
{day:0,collect_map:map{"APPL":145.03,"GOOG":87.07}}
{day:1,collect_map:map{"APPL":150.13,"GOOG":89.15}}