Département de Mathématique et Informatique
Master Spécialisé Big Data & Cloud Computing
Tp 3
Apache Pig
Réalisé par : Encadré par :
Ouahmid Fatimaezahra Mr. CHIBA Zouhair
Amine Sayagh
Mouad Imam
Année Universitaire 2024 / 2025
Compte rendu du Tp 3
1. Objectif :
Dans ce devoir, l'objectif est de comprendre et de manipuler les fonctionnalités
d'Apache Pig à travers le langage Pig Latin. Apache Pig simplifie la création de
traitements de données basés sur MapReduce en offrant une approche plus intuitive
comparée au codage en Java. Cela facilite considérablement le travail avec des
données massives dans des environnements distribués, tout en réduisant la complexité
du développement.
2. Étapes de Réalisation
Chargement et définition des données
● Lancer le shell Pig avec la commande pig.
● Charger le fichier [Link] avec la commande LOAD.
● Valider le chargement des données avec un aperçu du contenu et la commande
DESCRIBE arbres_bruts.
Affichons un aperçu du contenu pour valider le chargement :
BD2C – S3 1
Compte rendu du Tp 3
Pour s'assurer que les données sont correctement chargées, utilisons :
Cette commande nous montre le schéma de la relation arbres_bruts.
Filtrage des données
● Exclure les lignes invalides (par exemple, celles sans coordonnées
géographiques).
● Vérifier l'intégrité des données filtrées avec DUMP arbres.
Vérifions le schéma avec DESCRIBE arbres :
BD2C – S3 2
Compte rendu du Tp 3
Affichons les données avec DUMP arbres :
Passons maintenant au filtrage :
Aperçu du résultat :
BD2C – S3 3
Compte rendu du Tp 3
Classement et sélection des éléments
● Trier les arbres par année de plantation.
● Sélectionner les arbres les plus anciens.
● Limiter les résultats aux cinq plus vieux arbres grâce à la commande RANK.
Aperçu du résultat :
BD2C – S3 4
Compte rendu du Tp 3
Limiter les résultats
Récupérons les 5 premiers arbres :
Aperçu du résultat :
Pour obtenir les 5 premiers arbres, filtrons ceux ayant un rang inférieur ou égal à 5.
Ici, vieux_arbres2 contient les arbres les plus anciens (top 5), classés par année.
BD2C – S3 5
Compte rendu du Tp 3
Aperçu du résultat :
Opérations de projection et de calculs simples
● Créer une colonne calculant l'âge de chaque arbre en fonction de l'année
actuelle.
● Supprimer des colonnes spécifiques avec une syntaxe simplifiée.
Aperçu du résultat :
BD2C – S3 6
Compte rendu du Tp 3
Le cours mentionne une syntaxe basée sur .. (2 points) pour écrire facilement
une énumération de champs. Voici comment enlever le rang de vieux_arbres2 sans
lister tous les champs :
Aperçu du résultat :
Élimination des doublons
● Identifier et supprimer les enregistrements en double pour conserver des
données uniques.
Aperçu du résultat :
BD2C – S3 7
Compte rendu du Tp 3
Groupement
● Grouper les arbres par genre.
● Calculer des statistiques (moyenne, maximum, nombre) sur l'âge des arbres par
genre.
Genre âge connus :
Aperçu du résultat :
BD2C – S3 8
Compte rendu du Tp 3
Ages par genre :
Aperçu du résultat :
BD2C – S3 9
Compte rendu du Tp 3
Une variante du groupement consiste à grouper tous les n-uplets dans un seul
résultat :
Par age :
Aperçu du résultat :
Par groupe d’age :
Aperçu du résultat :
Groupement et agrégation
● Grouper les arbres par genre.
● Calculer des statistiques (moyenne, maximum, nombre) sur l'âge des arbres par
genre.
Résultat :
BD2C – S3 10
Compte rendu du Tp 3
Pour le nombre :
Résultat :
Pour l’age moyen :
Résultat :
BD2C – S3 11
Compte rendu du Tp 3
Pour l’age maximal :
Résultat :
calculer la moyenne et le maximum de l'âge pour chaque genre d’arbre :
Résultat :
Dégroupement
● Utiliser la fonction FLATTEN pour transformer des groupes en éléments
individuels.
Aperçu du résultat :
BD2C – S3 12
Compte rendu du Tp 3
Imbrication
● Effectuer des analyses complexes en combinant des boucles et des filtres.
● Identifier les genres ayant au moins deux arbres de plus de 150 ans.
Résultat :
BD2C – S3 13
Compte rendu du Tp 3
Pour voir les résultats de l’agrégation :
Résultat :
3. Conclusion
Ce travail nous a offert l'opportunité de découvrir Apache Pig et de pratiquer le
langage Pig Latin pour manipuler des données massives de manière intuitive, réduisant
ainsi la complexité des jobs MapReduce écrits en Java. À travers des étapes
BD2C – S3 14
Compte rendu du Tp 3
progressives, nous avons appris à charger, filtrer, classer, projeter et agréger des
données, ce qui nous a permis de mieux comprendre la structure des relations et
l'importance de définir des schémas pour une manipulation efficace des données.
Les fonctions clés utilisées, telles que FILTER, ORDER, LIMIT, RANK, et
GROUP, ont démontré la flexibilité d'Apache Pig pour organiser et traiter les données.
Nous avons également exploré des techniques avancées, comme le groupement et
l’agrégation, ainsi que le dégroupement avec FLATTEN, qui simplifient le traitement
des groupes de données et facilitent les analyses.
Cette expérience nous a permis de renforcer notre compréhension des concepts de
manipulation des données dans des environnements distribués et d'acquérir des
compétences essentielles pour traiter des bases de données volumineuses. En somme,
ce TP a été une expérience enrichissante, nous préparant à gérer efficacement des
projets de traitement de données en masse dans l'écosystème Hadoop.
BD2C – S3 15