Table des Matières



TP sur la librairie MRJobs

Deux exercices vous sont proposés. Le travail doit être réalisé en local, sur vos machines personnelles, à laide de la librairie MrJob.

Exercice 1 - Questionner un fichier de ventes

Nous cherchons à recueillir des informations et calculer des statistiques sur des résultats de ventes stockés dans un fichier volumineux.

Créez un répertoire sur votre DD, et déposez le fichier de vente sur lequel vous allez travailler:

Le fichier est organisé en 6 colonnes :

  • date (format YYYY-MM-DD);
  • heure (format hh:mm);
  • ville d’achat;
  • catégorie de l’achat (parmi Book, Men’s Clothing, DVDs…);
  • somme dépensée par le client;
  • moyen de paiement (parmi Amex, Cash, MasterCard…).

Les colonnes sont séparées par une tabulation. Ce caractère est codé par \t en python. Exemple : print("avant\tapres") permet d’obtenir l’impression de la chaîne “avant     apres”.

Vous êtes maintenant équipés pour développer les scripts map-reduce avec la librairie MRJobs. Voici une liste de questions que vous traiterez dans des fichiers .py différents pour garder trace de votre travail.

  1. Quel est le nombre d’achats effectués pour chaque catégorie d’achat ?
  2. Quelle est la somme totale dépensée pour chaque catégorie d’achat ?
  3. Quelle somme est dépensée dans la ville de San Francisco dans chaque moyen de paiement ?
  4. Dans quelle ville la catégorie Women’s Clothing a permis de générer le plus d’argent Cash ?
  5. Ajoutez une requête originale et complexe (i.e. nombre de STEPS > 1) de votre choix sur ce fichier.

Veillez à tester vos programmes en mode -r local, pour vérifier que vos algorithmes fonctionnent bien dans le cadre de traitements parallèles.

Exercice 2 - Anagramme

Étant donné un fichier de mots, écrire un script map-reduce qui détecte les mots ayant EXACTEMENT les mêmes lettres (mais dans un ordre différent).

Ainsi, par exemple, le fichier de mots suivant

melon, barre, deviner, lemon, arbre, fiable, fable, vendredevenir, faible, barbe

donnera en sortie cette liste:

faible, fiable
arbre, barre
devenir, deviner
lemon, melon

La sortie ne devra afficher que les réponses avec aux moins 2 mots, et ne devra pas tenir compte des voyelles accentuées.

Dictionnaires de mots Pour vos tests intensifs, vous pourrez utiliser