Performs a mapping of incoming attributes to out-coming attributes using map functions. Odysseus also provides a wide range of mapping functions.
Hint: Map is stateless. To used Map in a statebased fashion see: StateMap
Parameter
expressions:
A list of expressions to map multiple incoming attribute values to out-coming attributes. Optional each expression can have a name (in this case use['expression', 'expressionName']
)threads:
Number of threads used to process the expressions simultaneous. A positive number greater than 1 indicates the fixed number of threads, a value of 0 or 1 disables threading, and a negative number estimates the number of threads based on the number of expressions and the available processors.allownull:
If set to true (default) and an error occurs in calculation a null value is added to the element. Else the element is skipped and no output is produced. Default is true.kvexpressions
: Same as expressions, but for key value objects. (only for use with key value objects)keepAttributes
: If set to true, all key value pairs will be kept, even if not mentioned in kvexpressions. (only for use with key value objects)removeAttribtues:
A List of attributes, which will be removed from the key value object. (only for use with key value objects)
Example
PQL
Map Operator
output = MAP({ expressions = [ ['auction_id * 5','AuctionMult5'], 'sqrt(auction_id)' ] }, input) ///Example for use with key value objects kvoutput = MAP({ kvExpressions = [ ['toLong(timestamp.unixtimestamp + 1)', 'Zeit'] ], keepAllAttributes = 'true', removeAttributes = ['uncorrectedTrack.mbid', 'track.artist.mbid', 'track.mbid', 'uncorrectedTrack.artist.mbid'] }, json)
CQL
Map Operator
SELECT auction_id * 5, sqrt(auction_id) FROM input