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
- 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 !
- Certains arbres n’ont pas de taille renseignée : on devra donc filtrer le RDD en supprimant les lignes dont la hauteur est égale à
- d’afficher les coordonnées GPS des arbres de plus grandes circonférences pour chaque arrondissement de la ville de Paris.
- 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 partieTé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.