collect_map
Aggregate Function
collect_map — aggregate map values into a single map
Synopsis
collect_map(|{any:any}|) -> |{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:
collect_map(|{stock:price}|)
{stock:"APPL",price:145.03}
{stock:"GOOG",price:87.07}
Loading...
echo '{stock:"APPL",price:145.03}
{stock:"GOOG",price:87.07}' \
| super -z -c 'collect_map(|{stock:price}|)' -
Continuous collection over a simple sequence:
yield collect_map(this)
|{"APPL":145.03}|
|{"GOOG":87.07}|
|{"APPL":150.13}|
Loading...
echo '|{"APPL":145.03}|
|{"GOOG":87.07}|
|{"APPL":150.13}|' \
| super -z -c 'yield collect_map(this)' -
Create maps by key:
collect_map(|{stock:price}|) by day | sort
{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}
Loading...
echo '{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}' \
| super -z -c 'collect_map(|{stock:price}|) by day | sort' -