Data Programming Course  Documentation

%======================================
% 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