Hi,
Can someone help me how can I merge 2 maps into single map using painless script in watcher transform?
I am building 2 maps where first map has data like this:
[
{
"src": "A",
"earlier": 34905
},
{
"src": "B",
"earlier": 494
}
]
and second map has data like this:
[
{
"src": "A",
"latest": 4685
},
{
"src": "B",
"latest": 765
}
]
Now i want to merge both of them as single map resulting in
[
{
"src": "A",
"earlier": 34905,
"latest": 4685
},
{
"src": "B",
"earlier": 494,
"latest": 765
}
]
Here is sample transform script:
"transform": {
"script": {
"lang": "painless",
"source": "def firstmap=ctx.payload.aggregations.range.buckets.earlier.by_source.buckets.stream().map(p ->['src':p.key,'earlier':p.total.value]).collect(Collectors.toList());def secondmap=ctx.payload.aggregations.range.buckets.latest.by_source.buckets.stream().map(p ->['src':p.key,'latest':p.total.value]).collect(Collectors.toList());"
}
}