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, ne porte que sur le second exercice.

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 algo 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 grandes circonférences 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

Remarques : - Vous NE devez PAS utiliser pyspark.sql dans votre requête ! - LE CR ne porte que sur cette partie

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ésultat donnés par votre requête. Il faut que le correcteur puisse rejouer votre requête et obtenir les mêmes résultats.