Introduction à Apache Pig

Qu’est ce que Apache Pig?

Pig est une plateforme haut niveau pour la création de programme MapReduce utilisé avec Hadoop. Le langage de cette plateforme est appelé le Pig Latin. Pig Latin s’abstrait du langage de programmation Java MapReduce et se place à un niveau d’abstraction supérieur, similaire à celle de SQL pour systèmes SGBDR. Pig Latin peut être étendue en utilisant UDF (User Defined Functions) que l’utilisateur peut écrire en Java, en Python,en JavaScript, en Ruby ou en Groovy et ensuite être utilisé directement au sein du langage.

L'architecture d'Apache Pig

L’architecture d’Apache Pig

Pig était initialement développé chez Yahoo Research dans les années 2006 pour les chercheurs qui souhaitaient avoir une solution ad-hoc pour créer et exécuter des jobs map-reduce sur d’importants jeux de données. En 2007, il a été transmis à l’Apache Software Foundation6.

Un programme Pig travaille sur des données élémentaires nommées atom. Un ensemble d’atoms, par exemple une ligne dans un fichier, s’appelle un tuple. Les tuples sont regroupés dans des bags.

Modèle de données

Modèle de données

Un programme Pig consiste souvent à charger des ensembles de données dans des bags, puis à créer de nouveaux bags par le biais d’opérations de tri, de filtrage, de jointure…

Une “requête” Pig définit un opérateur qui prend une relation en entrée et produit une autre relation en sortie. Les requêtes consistent en une séquence d’instructions suivant généralement le schéma suivant : 1 L’instruction LOAD charge les données d’un fichier (HDFS) sous la forme d’une relation (liste de n-uplets). 2 Une série de transformations traite les données. 3 L’instruction (optionnelle) STORE écrit le résultat dans le système de fichiers (HDFS) ; on peut aussi faire un DUMP pour afficher à l’écran.

 

Un programme Pig travaille sur des données élémentaires nommées atom. Un ensemble d’atoms, par exemple une ligne dans un fichier, s’appelle un tuple. Les tuples sont regroupés dans des bags. Un programme Pig consiste souvent à charger des ensembles de données dans des bags, puis à créer de nouveaux bags par le biais d’opérations de tri, de filtrage, de jointure… Un exemple de programme Pig de création, de chargement et de sauvegarde de bags est proposé ci-après.

Principaux opérateurs Pig

Operator Description
foreach Applique une expression à chaque document
filter  Filtre les tuples sur certains critères
distinct Elimination des doublons
join Jointures de deux bags
group Regroupement
cogroup Association de n-uplets provenant de deux sources
cross Produit cartésien de deux sources
order Tri
limit Limite la taille des données traitées
union Union de deux sources (dont les schémas peuvent être très différents)
split Partition d’une relation selon certains critères

 

Laisser un commentaire