-
"Chunking" kommer från din kod:din reduceringsfunktions värdeparameter kan innehålla antingen
{time:<timestamp>,value:<value>}
sänds ut från din kartfunktion, eller{time:[<timestamps>],value:[<values]}
returnerade från ett tidigare samtal till din reduceringsfunktion. -
Jag vet inte om det kommer att hända i praktiken, men det kan hända i teorin.
-
Låt helt enkelt din kartfunktion sända ut samma typ av objekt som din reduceringsfunktion returnerar, t.ex.
emit(<id>, {time: [ts], value: [P[1]]})
, och ändra din reduceringsfunktion i enlighet därmed, t.ex.Array.push.apply(result.time, V.time)
och liknande förresult.value
.Tja, jag förstår faktiskt inte varför du inte använder en array av tid/värde-par istället för ett par arrayer, dvs
emit(<id>, { pairs: [ {time: ts, value: P[1] ] })
elleremit(<id>, { pairs: [ [ts, P[1]] ] })
i kartfunktionen ochArray.push.apply(result.pairs, V.pairs)
i reduceringsfunktionen. På så sätt behöver du inte ens slutföringsfunktionen (förutom kanske att "packa upp" arrayen från paren egenskap:eftersom reduceringsfunktionen inte kan returnera en array måste du linda in den på det sättet i ett objekt)