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:
- purchases.txt : >4 000 000 lignes !
- purchases_10000.txt : extraction de 10 000 lignes.
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.
- Quel est le nombre d’achats effectués pour chaque catégorie d’achat ?
- Quelle est la somme totale dépensée pour chaque catégorie d’achat ?
- Quelle somme est dépensée dans la ville de San Francisco dans chaque moyen de paiement ?
- Dans quelle ville la catégorie Women’s Clothing a permis de générer le plus d’argent Cash ?
- 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
- le fichier (de langue anglaise) suivant : words_alpha
- ou le fichier suivant (de langue française): Liste-de-mots-francais-Gutenberg