-
De "chunking" komt van uw code:de parameter Values van uw functie reduceren kan ofwel
{time:<timestamp>,value:<value>}
bevatten uitgezonden door uw kaartfunctie, of{time:[<timestamps>],value:[<values]}
teruggekeerd van een eerdere oproep naar uw reduceerfunctie. -
Ik weet niet of het in de praktijk zal gebeuren, maar in theorie kan het gebeuren.
-
Laat uw kaartfunctie gewoon hetzelfde soort objecten uitzenden als uw reductiefunctie retourneert, d.w.z.
emit(<id>, {time: [ts], value: [P[1]]})
, en wijzig uw reduceerfunctie dienovereenkomstig, d.w.z.Array.push.apply(result.time, V.time)
en op dezelfde manier voorresult.value
.Nou, ik begrijp eigenlijk niet waarom je geen array van tijd/waarde-paren gebruikt, in plaats van een paar arrays, d.w.z.
emit(<id>, { pairs: [ {time: ts, value: P[1] ] })
ofemit(<id>, { pairs: [ [ts, P[1]] ] })
in de kaartfunctie, enArray.push.apply(result.pairs, V.pairs)
in de reduceerfunctie. Op die manier heb je de finalize-functie niet eens nodig (behalve misschien om de array uit de paren te "uitpakken" eigenschap:omdat de functie reduceer geen array kan retourneren, moet u deze op die manier in een object plaatsen)