TP2 Pig
TP2 Pig
TP2 Pig
Objectifs :
Ce TP permet aux étudiants d’apprendre comment :
Charger des données avec Pig
Créer un schéma, lire, écrire et afficher des données
Accéder aux champs d’un schéma avec Pig
Consignes :
Tout partage de travail du compte rendu avec vos collègues sera sanctionné par un
zero
Comment trouver le nombre d'occurrences des mots dans un fichier ? Certainement, vous
connaissez la réponse en utilisant un programme MapReduce écrit en Java.
Dans cet exercice, nous allons écrire un script de Pig simple pour le problème de comptage
des mots. Le script Pig suivant permet de calculer le nombre de fois qu'un mot répété dans
un fichier :
1
Explication :
Ce script Pig divise d'abord chaque ligne en mots en utilisant l’opérateur tokenize. La
fonction tokenize crée un sac de mots. L’utilisation de la fonction FLATTEN permet de
convertir le sac de mots en un tuple. Dans la troisième déclaration, les mots sont regroupés
de telle sorte que le nombre peut être calculé qui se fait à la quatrième déclaration.
Vous pouvez voir juste avec 5 lignes de programme de Pig, nous avons résolu le problème
de comptage des mots très facilement.
Questions :
Exécuter en mode MapReduce le script précédent :
La première étape dans le traitement d’un ensemble de données à l’aide de Pig Script est de
définir un schéma pour l'ensemble de données. Un schéma est une représentation de
l'ensemble en termes de champs de données. Voyons comment définir un schéma avec un
exemple.
Prenons l'ensemble de données des produits (produits.txt) suivants dans Hadoop comme
exemple :
Ici le premier champ est l'identifiant du produit, le deuxième champ est le nom du produit et
le troisième champ est le prix du produit.
Question : Copier le dossier data-pig sous HDFS (Utiliser HUE par exemple)
L'opérateur LOAD est utilisé pour définir un schéma pour un ensemble de données. Voyons
les différents usages de l'opérateur LOAD pour définir le schéma de l'ensemble de données
ci-dessus.
2
Pig est un langage de flux de données. Chaque instruction dans Pig se compose d'une relation
et une opération. Le côté gauche de la déclaration est appelée relation et le côté droit est
appelé l'opération. Chaque instruction pig doit se terminer par un point - virgule.
Dans cet exemple A est une relation. /user/cloudera/data-pig/produits.txt
est le fichier dans HDFS. Pour voir le schéma d'une relation, saisir l’instruction suivante :
grunt> describe A;
Schema for A unknown.
Comme les champs ne sont pas définis, Le script a indiqué que le schéma de A est inconnu.
Question : Afficher le contenu de la relation A sur la console
grunt> ----------------------------------------------------------------------------------
Le script Pig suivant montre comment pouvons définir les noms et les types des champs (int,
chararray)
grunt> DUMP A;
Jusqu'à présent, nous avons vu comment définir un schéma, comment imprimer le contenu des
données sur la console et comment écrire des données dans HDFS. Maintenant, nous allons voir
comment accéder aux champs.
3
Noms de champs : Nous pouvons spécifier le nom du champ pour accéder aux valeurs
de ce champ particulier.
Paramètres positionnels : Les positions des champs commencent à partir de 0 à n. $ 0
indique premier champ, 1 $ indique deuxième champ
Questions :
Pig vous permet de supprimer les enregistrements non nécessaires en se basant sur des
conditions. L’opérateur FILTER est similaire à la clause WHERE dans SQL.
Supposons que nous avons l'ensemble des données de vente « ventes.txt » ci – dessous :
Questions
Note :
Vous pouvez utiliser tous les opérateurs logiques (NON, ET, OU) et les opérateurs
relationnels (<,>, ==, =,> =, <= !) dans les conditions de filtre.
Bon travail