%====================================== % La funzione Reduce viene chiamata per % ognuna delle chiavi uniche della Map. % Ogni chiave può avere più valori salvati % che vengono passati come ValueIterator. % Per funzionare sono necessarie le funzioni % 'hasnext' e 'getnext' per l'iterazione. % Al termine vengono aggregati i valori intermedi % e salvati in un'unica coppia chiave-valore. %====================================== function MeanDistReduceFun( intermKey, intermValIter, outKVStore ) % Funzione di REDUCE per il paradigma Map Reduce % per il calcolo della media delle distanze tra voli % Inputs : intermKey - chiave intermedia (ogni chiamata specifia % una nuova chiave unica) % intermValIter - interatore associato alla chiave attiva % (contiene tutti i valori associati alla chiave attiva) % Il passaggio tra i vari valori si esegue con la % funzione 'hasnext' % outKVstore - KeyValueStore finale utilizzato per mettere % insieme tutti i valori calcolati % inizializzo a zero i valori sumLen = [0 0]; % scorro tutte le coppie e sommo i valori intermedi while hasnext(intermValIter) sumLen = sumLen + getnext(intermValIter); end % risommo tutto e metto tutto dentro la media add(outKVStore, 'Mean', sumLen(1)/sumLen(2)); end