Cet article concerne les opérateurs d'Apache Pig.Apache Pig vous permet également d'écrire des transformations de données complexes sans la connaissance de Java, ce qui le rend vraiment important pour le .Jetons un coup d'œil à ce qu'est Pig and Pig Latin et aux différents modes dans lesquels ils peuvent être utilisés, avant de passer aux opérateurs.
Qu'est-ce qu'Apache Pig?
Apache Pig est un langage procédural de haut niveau permettant d'interroger de grands ensembles de données à l'aide de Hadoop et de la plateforme Map Reduce. Il s'agit d'un package Java, dans lequel les scripts peuvent être exécutés à partir de n'importe quelle implémentation de langage exécutée sur la JVM. Ceci est largement utilisé dans les processus itératifs.
Apache Pig simplifie l'utilisation d'Hadoop en autorisant des requêtes de type SQL à un ensemble de données distribué et permet de créer des tâches complexes pour traiter rapidement et efficacement de gros volumes de données. La meilleure caractéristique de Pig est qu'il prend en charge de nombreuses fonctionnalités relationnelles telles que Join, Group et Aggregate.
Je sais que Pig ressemble beaucoup plus à un outil ETL et qu'il possède de nombreuses fonctionnalités communes aux outils ETL. Mais l'avantage de Pig par rapport aux outils ETL est qu'il peut fonctionner simultanément sur de nombreux serveurs.
Qu'est-ce que Apache Pig Latin?
Apache Pig crée une abstraction de langage procédural plus simple sur Map Reduce pour exposer une interface plus semblable à SQL (Structured Query Language) pour les applications Hadoop appelée Apache Pig Latin, donc au lieu d'écrire une application Map Reduce séparée, vous pouvez écrire un seul script dans Apache Pig Latin qui est automatiquement parallélisé et distribué sur un cluster. En termes simples, Pig Latin est une séquence d'instructions simples prenant une entrée et produisant une sortie. Les données d'entrée et de sortie sont composées de sacs, de cartes, de tuples et de scalaires.
Modes d'exécution d'Apache Pig:
Apache Pig a deux modes d'exécution:
Mode local
En «mode local», les données sources seraient sélectionnées dans le répertoire local de votre système informatique. Le mode MapReduce peut être spécifié à l’aide de la commande ‘pig –x local’.
Mode MapReduce:
Pour exécuter Pig en mode MapReduce, vous devez accéder au cluster Hadoop et à l'installation HDFS. Le mode MapReduce peut être spécifié à l’aide de la commande ‘pig’.
Opérateurs Apache Pig:
Les opérateurs Apache Pig sont un langage procédural de haut niveau permettant d'interroger de grands ensembles de données à l'aide de Hadoop et de la plate-forme Map Reduce. Une instruction Pig Latin est un opérateur qui prend une relation en entrée et en produit une autre en sortie. Ces opérateurs sont les principaux outils fournis par Pig Latin pour opérer sur les données. Ils vous permettent de le transformer en triant, regroupant, joignant, projetant et filtrant.
Créons deux fichiers pour exécuter les commandes:
Nous avons deux fichiers nommés «premier» et «deuxième». Le premier fichier contient trois champs: utilisateur, URL et identifiant.
Le deuxième fichier contient deux champs: url et évaluation. Ces deux fichiers sont des fichiers CSV.
Les opérateurs Apache Pig peuvent être classés comme suit: Relationnel et diagnostique.
Opérateurs relationnels:
Les opérateurs relationnels sont les principaux outils fournis par Pig Latin pour opérer sur les données. Il vous permet de transformer les données en les triant, en les regroupant, en les joignant, en les projetant et en les filtrant. Cette section couvre les opérateurs relationnels de base.
CHARGE:
L'opérateur LOAD est utilisé pour charger les données du système de fichiers ou du stockage HDFS dans une relation Pig.
Dans cet exemple, l’opérateur de chargement charge les données du fichier «first» pour former la relation «loading1». Les noms de champ sont user, url, id.
POUR CHAQUE:
Cet opérateur génère des transformations de données basées sur des colonnes de données. Il est utilisé pour ajouter ou supprimer des champs d'une relation. Utilisez l'opération FOREACH-GENERATE pour travailler avec des colonnes de données.
Résultat FOREACH:
FILTRE:
Cet opérateur sélectionne des tuples à partir d'une relation basée sur une condition.
aller en c ++
Dans cet exemple, nous filtrons l'enregistrement de 'chargement1' lorsque la condition 'id' est supérieure à 8.
Résultat FILTER:
JOINDRE:
L'opérateur JOIN est utilisé pour effectuer une jointure interne, équijointaine de deux ou plusieurs relations basées sur des valeurs de champ communes. L'opérateur JOIN effectue toujours une jointure interne. Les jointures internes ignorent les clés nulles, il est donc logique de les filtrer avant la jointure.
Dans cet exemple, joignez les deux relations basées sur la colonne 'url' de 'loading1' et 'loading2'.
JOIN Résultat:
COMMANDÉ PAR:
Trier par est utilisé pour trier une relation basée sur un ou plusieurs champs. Vous pouvez effectuer un tri par ordre croissant ou décroissant à l'aide des mots-clés ASC et DESC.
Dans l'exemple ci-dessous, nous trions les données dans loading2 dans l'ordre croissant sur le champ des notes.
ORDER BY Résultat :
DISTINCT:
Distinct supprime les tuples en double dans une relation. Prenons un fichier d'entrée comme ci-dessous, qui a amr, merde, 8 et amr, myblog, 10 deux fois dans le fichier. Lorsque nous appliquons distinctement sur les données de ce fichier, les entrées en double sont supprimées.
DISTINCT Résultat:
BOUTIQUE:
Store est utilisé pour enregistrer les résultats dans le système de fichiers.
Ici nous économisons chargement3 données dans un fichier nommé stockage sur HDFS.
Résultat STORE:
GROUPE:
L'opérateur GROUP regroupe les tuples avec la même clé de groupe (champ clé). Le champ de clé sera un tuple si la clé de groupe a plus d'un champ, sinon il sera du même type que celui de la clé de groupe. Le résultat d'une opération GROUP est une relation qui inclut un tuple par groupe.
Dans cet exemple, groupe th
e relation «chargement1» par URL de colonne.
Résultat GROUPE:
COGROUP:
COGROUP est identique à l'opérateur GROUP. Pour plus de lisibilité, les programmeurs utilisent généralement GROUP lorsqu'une seule relation est impliquée et COGROUP lorsque plusieurs relations sont impliquées.
Dans cet exemple, regroupez les champs «loading1» et «loading2» par URL dans les deux relations.
Résultat COGROUP:
TRAVERSER:
L'opérateur CROSS est utilisé pour calculer le produit croisé (produit cartésien) de deux ou plusieurs relations.
Application du produit croisé lors du chargement1 et du chargement2.
Résultat CROSS:
LIMITE:
L'opérateur LIMIT est utilisé pour limiter le nombre de tuples de sortie. Si le nombre spécifié de tuples de sortie est égal ou dépasse le nombre de tuples dans la relation, la sortie inclura tous les tuples de la relation.
power bi vs tableau 2016
Résultat LIMIT:
DIVISÉ:
L'opérateur SPLIT est utilisé pour partitionner le contenu d'une relation en deux ou plusieurs relations basées sur une expression. Selon les conditions énoncées dans l'expression.
Divisez le chargement2 en deux relations x et y. La relation x créée par loading2 contient les champs dont la cote est supérieure à 8 et la relation y contient les champs dont la cote est inférieure ou égale à 8.
Vous avez une question pour nous? Veuillez les mentionner dans la section commentaires et nous vous recontacterons.
Articles Similaires:
Opérateurs dans Apache Pig - Opérateurs de diagnostic
Étapes pour créer UDF dans Apache Pig