-
Il "chunking" deriva dal tuo codice:il parametro dei valori della tua funzione di riduzione può contenere sia
{time:<timestamp>,value:<value>}
emesso dalla funzione della mappa o{time:[<timestamps>],value:[<values]}
restituito da una precedente chiamata alla tua funzione di riduzione. -
Non so se succederà in pratica, ma in teoria può succedere.
-
Fai semplicemente in modo che la tua funzione di mappa emetta lo stesso tipo di oggetti che restituisce la tua funzione di riduzione, ad esempio
emit(<id>, {time: [ts], value: [P[1]]})
e modifica la tua funzione di riduzione di conseguenza, ad esempioArray.push.apply(result.time, V.time)
e allo stesso modo perresult.value
.Beh, in realtà non capisco perché non stai usando una matrice di coppie tempo/valore, invece di una coppia di matrici, ad es.
emit(<id>, { pairs: [ {time: ts, value: P[1] ] })
oemit(<id>, { pairs: [ [ts, P[1]] ] })
nella funzione mappa eArray.push.apply(result.pairs, V.pairs)
nella funzione di riduzione. In questo modo, non avrai nemmeno bisogno della funzione finalize (tranne forse per "scompattare" l'array dalle coppie proprietà:poiché la funzione reduce non può restituire un array, devi avvolgerlo in questo modo in un oggetto)