TP No 2: framework Map-Reduce et framework agrégation
A rendre le 11/01/2021
Il convient de fournir un rapport (au format pdf) contenant tous les scripts écrits et des copies
d’écran justifiant les résultats obtenus
Map-Reduce
http://b3d.bdpedia.fr/mapreduce.html
https://docs.mongodb.com/manual/core/map-reduce/
Agrégation et lookup
Publicité
https://docs.mongodb.com/manual/aggregation/
http://www.lafabriquedecode.com/blog/2019/09/mongodb-lookup-pipeline-
agregation/
Travail à faire
1. Importer le fichier json se trouvant sous https://www.data.gouv.fr/fr/datasets/r/37ed57aa-
5110-4f6f-83df-94e5dbd3eea1 dans la collection inscription
2. Un des champs intitulé fields.bac (vers la fin de chaque enregistrement) code chaque type
de bac par une chaine de caractère contenant un simple entier. Ecrivez un programme Map-
Publicité
Reduce qui compte le nombre d’occurrences de chaque type de bac.
3. Ré‐exécutez votre Map-Reduce en triant les données d’entrées selon le champ fields.bac en
ordre croissant, puis en ordre décroissant. Que constatez-vous ? Comment résoudre le
problème
4. À partir de la collection inscription on veut générer deux collections :
Une première collection C1 contenant uniquement des clés. Chaque clé est
composée de 2 champs : etablissement_lib (nom établissement) et
cursus_lmd. (L, M, ou D). Donc on aura
Publicité
_id : {"etablissement_lib" : leEtablissementLib, "cursus_lmd" : leCursusLMD}
Une deuxième collection C2 contenant uniquement des clés. Chaque clé est
composée de 2 champs : etablissement_lib et aca_etab_lib (nom de
l’académie)
_id : {"etablissement_lib" : leEtablissementLib, "aca_etab_lib" : laAcademie}
Ecrivez les Map-Reduce permettant de générer les deux collections
5. Effectuez la jointure entre C1 et C2 par rapport au etablissement_lib. On souhaite obtenir
un résultat constitués de documents au format suivant :
Publicité
{
"_id" : ObjectId("592d91222bb10509205a4f77"),
"etablissement_lib" : "Aix-Marseille université",
"cursus_lmd" : "D",
"aca_etab_lib" : "Aix-Marseille"
}