Examen de TP avec la librairie MrJob

Auteur

Table des matières

Consignes

Le travail est individuel, et doit être réalisé en local sur vos machines personnelles, sans l’usage d’Internet (et donc de ChatGPT en particulier).

Le CR, à remettre sur Edunao à la fin de l’examen, devra contenir, pour chaque question:

  • le code (fichier au format .py), et
  • le résultat de l’exécution sous forme d’un fichier texte.

Ainsi, pour la question 1, il faudra déposer les fichiers question1.py et resultat1.txt, pour la questions 2, il faudra déposer les fichiers question2.py et resultat2.txt, etc.



Preparation

Créez un répertoire ventes sur votre machine, et copiez le fichier sales_data_sample.csv (2824 lignes) dedans.

Exercice 1 - Questionner un fichier de ventes

Vous pouvez constater que le fichier est organisé en 20 colonnes, séparées par une tabulation.

Remarques :

  • La première ligne du fichier contient les en-têtes des colonnes : il faut trouver un truc pour ne pas la considérer.
  • Certains lignes du ficher présentent des colonnes non renseignées ou des dates males formées. Votre programme ne doit pas prendre en compte ces lignes.

Voici une liste de questions que vous programmerez obligatoirement à l’aide la librairie MRJob.

  1. Quelles sont toutes les catégories de produits (PRODUCTLINE) présentes dans le fichier ?
  2. Quel est le nombre de ventes (QUANTITYORDERED) réalisé pour chaque catégorie de produits ?
  3. Quel est le chiffre d’affaire (cf QUANTITYORDERED et PRICEEACH) par an et par catégorie de produits (tous pays confondus) ?
  4. Pour chaque pays, quel est le magasin (CUSTOMERNAME) qui a réalisé le plus gros chiffre d’affaire dans la catégorie de produits Trucks and Buses ?
  5. Ajoutez une requête originale et complexe (i.e. nombre de STEPS > 1) de votre choix sur ce fichier. Vous ajouterez la formulation française de cette requête comme un commantaire dans le fichier python.

Nous rappellons que l’exécution d’une requête s’écrit de la manière suivante:

python requete1.py -r inline sales_data_sample.csv > requete1.txt

Exercice 2 - Particularite lexicale

Étant donné un fichier de mots, écrire un script MRJob qui détecte les mots les plus longs ayant une seule voyelle (parmi aeiouy), éventuellement en plusieurs exemplaires. Par exemple, dans un dictionnaire de mots français, le mot abracadabrant est le mot le plus long (13 lettres) ne possédant que la voyelle a (en 5 exemplaires).

La sortie devra afficher de tels mots pour chacune des 6 voyelles. L’algorithme proposé ne devra pas tenir compte de la présence éventuelle de majuscules dans les mots.

Dictionnaires de mots Pour vos tests intensifs, vous pourrez utiliser le fichier (de langue anglaise) suivant : words_alpha.