Bonjour,
Je viens de découvrir en cours MapReduce, et le dernier exercice de ma fiche de TP (facultatif) me semble infaisable. Je n'ai aucune piste sur comment avancer, et je suis le seul de ma promo à le tenter.
On utilise zips.json : http://media.mongodb.org/zips.json
Chaque document est une ville, avec une population et le nom de l'Etat.
L'énoncé :
On souhaite écrire un programme MapReduce qui permet de calculer à laide d’une seul job
MapReduce les statistiques suivantes sur les populations des états des États-Unis :
• le nombre d’états,
• la population totale des États-Unis,
• la population de l’état le plus peuplé,
• la moyenne des populations des états ainsi que l’écart type sur les populations des états et ceci en
utilisant un seul job Map/Reduce sur la collection states
Donner la fonction map, la fonction reduce et la fonction finalize permettant de calculer les
statistiques avec le nombre d’états dans le champs nb, la population totale sum, la population de
l’état le plus peuplé dans max, la moyenne dans avg et l’écart-type dans std.
Si quelqu'un a une idée de la démarche, je suis preneur.
Mon premier problème, c'est que je ne sais pas quoi mettre émettre depuis la fonction map.
Si je mets une clé unique (comme "USA"), alors je peux calculer facilement la taille de la population, sa moyenne, mais il devient impossible de trouver l'état le plus peuplé.
Si je mets une clé par Etat (son nom), alors il est impossible de trouver l'état le plus peuplé, puisque chaque reducer est indépendant.
Merci d'avance pour votre aide. 