%====================================== % La funzione Map riceve un chunk di dati, % li riorganizza ed esegue eventuali calcoli % preliminari prima di applicare la funzione % per cui è effettivamente ideata. % A livello pratico, in una sommatoria, procederà % a sommare tra loro tutti le coppie chiave-valore % in un dato intermedio detto KeyValueStore. % Il numero di chiamate della funzione MAP da % parte del MapReduce sarà pari al numero di chunks % il cui si suddivide l'input. % Il KeyValueStore intermedio raggruppa tutti i % valori con chiavi uniche! %====================================== function MeanDistMapFun( data, info, intermKVStore ) % Funzione MAP del paradigma Map Reduce per il calcolo % della media di distanza tra i voli. % Inputs: data - dati effettivi % info - informazioni per la lettura legate al chunk % intermKVStore - KeyValueStore intermedio % oggetto di cui la Map ha bisogno % per sommare le coppie chiave-valore % Considero solamente gli elementi che non sono vuoti % all'interno dei miei dati distances = data.Distance(~isnan(data.Distance)); % Creo un vettore di due elementi: distanza totale % conteggio del chunk sumLenValue = [sum(distances) length(distances)]; % Sommo i valori ottenuti nella variabile intermedia % mettendogli la chiave 'sumAndLength' add(intermKVStore, 'sumAndLength', sumLenValue); % Lanciando il Map su tutti i chunk del data set % avrò al termine la distanza totale e il conteggio % per ogni chunk all'interno di intermKVStore end