-
"Chunking" pochází z vašeho kódu:parametr hodnot vaší funkce snížení může obsahovat buď
{time:<timestamp>,value:<value>}
vysílané z vaší mapové funkce nebo{time:[<timestamps>],value:[<values]}
vrátil z předchozího volání vaší funkce snížení. -
Nevím, jestli se to stane v praxi, ale může se to stát teoreticky.
-
Jednoduše požádejte, aby vaše mapová funkce emitovala stejný druh objektů, které vrací vaše funkce snížení, tj.
emit(<id>, {time: [ts], value: [P[1]]})
a odpovídajícím způsobem změňte funkci snížení, tj.Array.push.apply(result.time, V.time)
a podobně proresult.value
.Vlastně nechápu, proč nepoužíváte pole párů čas/hodnota místo páru polí, tj.
emit(<id>, { pairs: [ {time: ts, value: P[1] ] })
neboemit(<id>, { pairs: [ [ts, P[1]] ] })
ve funkci mapy aArray.push.apply(result.pairs, V.pairs)
ve funkci snížení. Tímto způsobem nebudete potřebovat ani funkci finalizace (možná kromě „rozbalení“ pole z párů vlastnost:protože funkce reduction nemůže vrátit pole, musíte jej tímto způsobem zabalit do objektu)