-
O "chunking" vem do seu código:o parâmetro de valores da sua função de redução pode conter{time:<timestamp>,value:<value>}
emitido de sua função de mapa, ou{time:[<timestamps>],value:[<values]}
retornado de uma chamada anterior para sua função de redução.
-
Não sei se vai acontecer na prática, mas pode acontecer na teoria.
-
Basta fazer com que sua função de mapa emita o mesmo tipo de objetos que sua função de redução retorna, ou seja,emit(<id>, {time: [ts], value: [P[1]]})
, e altere sua função de redução de acordo, ou seja,Array.push.apply(result.time, V.time)
e da mesma forma pararesult.value
.
Bem, eu realmente não entendo por que você não está usando uma matriz de pares de tempo/valor, em vez de um par de matrizes, ou seja,emit(<id>, { pairs: [ {time: ts, value: P[1] ] })
ouemit(<id>, { pairs: [ [ts, P[1]] ] })
na função map eArray.push.apply(result.pairs, V.pairs)
na função de redução. Dessa forma, você nem precisará da função finalize (exceto talvez para "desempacotar" o array dos pares propriedade:como a função de redução não pode retornar uma matriz, você deve envolvê-la dessa maneira em um objeto)