-
Das „Chunking“ kommt von Ihrem Code:Der Werteparameter Ihrer Reduce-Funktion kann entweder
{time:<timestamp>,value:<value>}
enthalten von Ihrer Kartenfunktion ausgegeben, oder{time:[<timestamps>],value:[<values]}
von einem vorherigen Aufruf Ihrer Reduce-Funktion zurückgegeben. -
Ich weiß nicht, ob es in der Praxis passieren wird, aber es kann theoretisch passieren.
-
Lassen Sie einfach Ihre Map-Funktion die gleiche Art von Objekten ausgeben, die Ihre Reduce-Funktion zurückgibt, d. h.
emit(<id>, {time: [ts], value: [P[1]]})
, und ändern Sie Ihre Reduce-Funktion entsprechend, z. B.Array.push.apply(result.time, V.time)
und ähnlich fürresult.value
.Nun, ich verstehe eigentlich nicht, warum Sie kein Array von Zeit/Wert-Paaren anstelle eines Array-Paares verwenden, dh
emit(<id>, { pairs: [ {time: ts, value: P[1] ] })
oderemit(<id>, { pairs: [ [ts, P[1]] ] })
in der Kartenfunktion undArray.push.apply(result.pairs, V.pairs)
in der Reduce-Funktion. Auf diese Weise benötigen Sie nicht einmal die Finalize-Funktion (außer vielleicht, um das Array aus den Paaren zu "entpacken". Eigenschaft:Da die Reduce-Funktion kein Array zurückgeben kann, müssen Sie es so in ein Objekt einschließen)