Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Buscar valor máximo con MapReduce

En este ejemplo se muestra cómo encontrar el valor máximo de una sola variable en un conjunto de datos mediante.mapreduce Demuestra el uso más simple de puesto que sólo hay una clave y un cálculo mínimo.mapreduce

Preparar datos

Cree un almacén de datos utilizando el conjunto de información.airlinesmall.csv Este conjunto de datos de 12 megabyte contiene 29 columnas de información de vuelo para varias aerolíneas, incluidas las horas de llegada y salida. En este ejemplo, seleccione (retardo de llegada de vuelo) como variable de interés.ArrDelay

ds = tabularTextDatastore('airlinesmall.csv', 'TreatAsMissing', 'NA'); ds.SelectedVariableNames = 'ArrDelay'; 

El almacén de datos trata los valores como ausentes y reemplaza los valores que faltan por valores predeterminados.'NA'NaN Además, la propiedad le permite trabajar solo con la variable de interés seleccionada, que puede verificar utilizando.SelectedVariableNamespreview

preview(ds) 
 ans =    8x1 table      ArrDelay     ________          8            8           21           13            4           59            3           11     

Ejecute MapReduce

La función requiere una función de mapa y una función de reducción como entradas.mapreduce El asignador recibe fragmentos de datos y genera resultados intermedios. El reductor Lee los resultados intermedios y produce un resultado final.

En este ejemplo, el asignador encuentra el retardo de llegada máximo en cada fragmento de datos. A continuación, el asignador almacena estos valores máximos como valores intermedios asociados a la clave.'PartialMaxArrivalDelay'

Mostrar el archivo de función de mapa.

 function maxArrivalDelayMapper (data, info, intermKVStore) % Mapper function for the MaxMapreduceExample.  % Copyright 1984-2014 The MathWorks, Inc.   % Data is an n-by-1 table of the ArrDelay. As the data source is tabular, % the return of read is a table object. partMax = max(data.ArrDelay); add(intermKVStore, 'PartialMaxArrivalDelay',partMax);  

El reductor recibe una lista de los retrasos máximos de llegada para cada fragmento y encuentra el retardo de llegada máximo general de la lista de valores. solo llama a este reductor una vez, ya que el asignador solo agrega una única clave única.mapreduce El reductor utiliza para agregar un par clave-valor final a la salida.add

Visualice el archivo de función de reducción.

 function maxArrivalDelayReducer(intermKey, intermValIter, outKVStore) % Reducer function for the MaxMapreduceExample.  % Copyright 2014 The MathWorks, Inc.  % intermKey is 'PartialMaxArrivalDelay'. intermValIter is an iterator of % all values that has the key 'PartialMaxArrivalDelay'. maxVal = -inf; while hasnext(intermValIter)    maxVal = max(getnext(intermValIter), maxVal); end % The key-value pair added to outKVStore will become the output of mapreduce  add(outKVStore,'MaxArrivalDelay',maxVal);  

Se utiliza para aplicar el mapa y reducir las funciones al almacén de datos,.mapreduceds

maxDelay = mapreduce(ds, @maxArrivalDelayMapper, @maxArrivalDelayReducer); 
******************************** *      MAPREDUCE PROGRESS      * ******************************** Map   0% Reduce   0% Map  16% Reduce   0% Map  32% Reduce   0% Map  48% Reduce   0% Map  65% Reduce   0% Map  81% Reduce   0% Map  97% Reduce   0% Map 100% Reduce   0% Map 100% Reduce 100% 

Devuelve un almacén de datos, con archivos en la carpeta actual.mapreducemaxDelay

Lea el resultado final del almacén de datos de salida,.maxDelay

readall(maxDelay) 
 ans =    1x2 table             Key           Value      _________________    ______      'MaxArrivalDelay'    [1014]  

Consulte también

|

Temas relacionados