Vous êtes sur la page 1sur 3

TP : MapReduce

MapReduce est un paradigme de traitement de données afin de condenser des grands volumes
de données en résultats agrégés utiles. En termes très simples, la commande MapReduce prend
deux entrées primaires, la fonction de mappage et la fonction de réducteur.

Un Mapper débutera par la lecture d'une collection de données pour construire une map avec
les champs que nous souhaiterons traiter. Puis cette paire clé, valeur est introduite dans un
réducteur, qui traitera les valeurs.

Figure1 : Paradigm de mapReduce


>db.collection.mapReduce(
function() {emit(key,value);}, //map function
function(key,values) {return reduceFunction}, //reduce function
{
out: nom-variable,
query: document,
sort: document,
limit: number
}
)

• map: Fonction javascript qui mappe une valeur à une clé et émet la paire clé/valeur
• reduce: Fonction javascript qui réduit ou regroupe tous les documents ayant la même
clé
• out: Spécifie l'emplacement du résultat de la spécifies de la map-reduce
• query: Précise les critères de sélection en option pour sélectionner les documents
• sort: Précise les critères de tri en option
• limit: Indique le nombre maximal option de documents à retourner

Exemple:

Affichage du nombre des films en base mongo par genre:

>var map =function() {emit(this.genre,1);};

>var reduce = function(key, values) { return Array.sum(values)};

>var count = db.movies.mapReduce(map, reduce, {out: "movies_result"});

>db.movies_result.find();

Exercices
Exercice 1:

Insertion de données :

db.text_data.insertMany([

{ content: "Hello world, this is a sample text for word count." },

{ content: "MongoDB is a popular NoSQL database." },

{ content: "NoSQL databases like MongoDB and Cassandra are scalable." }]);

In this exercise counts the occurrence of each word in a collection of text document using
map reduce function

Figure2 : Exemple de MapReduce


Exercice 2:

Insertion de données :

db.student_scores.insertMany([

{ student_id: 1, score: 85 },

{ student_id: 1, score: 90 },

{ student_id: 2, score: 75 },

{ student_id: 2, score: 80 },

{ student_id: 3, score: 95 },

{ student_id: 3, score: 88 }

]);

In this exercise calculates the average score for each student using map reduce function

-----------------------------------------------------------------------------------------------------------------

Vous aimerez peut-être aussi