Aller au contenu

Enonce TP Spark

Table des Matières


TP a realiser en seance

Cet énoncé présente les 2 exercices à réaliser en séance. Le compte-rendu, à déposer sur pedagogie3.ec-lyon.fr, porte sur les deux exercices.

Les principales commandes de pyspsark sont présentées dans ce doc: PySpark RDD Cheat Sheet.

Exercice 1 (75 minutes) : retrouver un arbre remarquable

Déplacez vous dans le répertoire de travail:

cd ~/TP_Spark/arbreRemarquable
ls
Le fichier arbresremarquablesparis.csv a été téléchargé depuis le site Opendata Paris. Pour information, vous retrouverez le fichier en cliquant sur ce lien, choisir le menu Export et le format csv (196 KOctets).

La commmande

wc -l arbresremarquablesparis.csv
indique que le fichier contient 189 lignes (i.e. arbres) . La commande
cat arbresremarquablesparis.csv
montre que chaque ligne décrit un arbre de la manière suivante (la première ligne du fichier décrit précisément l’intitulé de chaque colonne):

  • position GPS, arrondissement,
  • genre, espèce, famille,
  • année de plantation, hauteur, circonférence, etc.

Le séparateur entre les colonnes est le caractère ‘;’. Pour supprimer la première ligne, il suffit d’écrire:

sed '1d' arbresremarquablesparis.csv > arbresremarquablesparis2.csv 
Copiez alors arbresremarquablesparis2.csv sur HDFS (dans le répertoires input).

Remarque :

  • Vous ne pouvez pas rédiger vos algorithmes sur le Namenode (il n’y a pas d’éditeur de texte graphique). Éditez le fichier sur votre système d’exploitation, et envoyez-le sur le Namenode par la commande docker cp ....

Travail à réaliser Écrivez des programmes pyspark permettant

  1. d’afficher les coordonnées GPS, la taille et l’adresse de l’arbre le plus grand.
    • Certains arbres n’ont pas de taille renseignée : on devra donc filtrer le RDD en supprimant les lignes dont la hauteur est égale à ''.
    • La hauteur est une chaîne de caractères. Pour la transformer en nombre réel : hauteur_decimal = float(hauteur_string).
    • Pour vérifier le résultat, vous pouvez utiliser ce site. Entrez les coordonnées GPS trouvées et vérifiez que l’adresse est bien la bonne !
  2. d’afficher les coordonnées GPS des arbres de plus grande circonférence pour chaque arrondissement de la ville de Paris.
  3. d’afficher toutes les espèces d’arbre, triées par genre.

Exercice 2 (90 minutes): The MovieLens Database

Remarque : Vous NE devez PAS utiliser pyspark.sql dans votre requête !

Téléchargement des données

Créez un répertoire de travail

mkdir ~/TP_Spark/cinema
cd ~/TP_Spark/cinema
Téléchargez la base de données
wget http://files.grouplens.org/datasets/movielens/ml-latest-small.zip
et la décompresser:
unzip ml-latest-small.zip
rm ml-latest-small.zip
Dans le répertoire ml-latest-small, créé lors de la décompression, vous constaterez que les fichiers contiennent 100000 évaluations et 3600 tags donnés par 600 utilisateurs concernant 9000 films.

Travail à réaliser

Proposez une (1) requête, écrite en pyspark (et non en pyspark.sql), relativement sophistiquée (et originale) qui interroge plusieurs fichiers de cette base. Le CR, à remettre en fin de séance, doit être déposé sur pedagogie3.ec-lyon.fr.

N’oubliez pas de mettre votre nom, d’expliquer votre requête en français, de commenter votre code (pas trop et pas trop peu, avec des noms de variables explicatifs) et de copier une partie des résultats fournis par votre requête. Il faut que le correcteur de votre CR puisse rejouer votre requête et obtenir les mêmes résultats.