Pig Latin - Notions de base
Pig Latin est la langue utilisée pour analyser les données dans Hadoop à l'aide d'Apache Pig. Dans ce chapitre, nous allons discuter des bases de Pig Latin telles que les instructions Pig Latin, les types de données, les opérateurs généraux et relationnels et les UDF Pig Latin.
Pig Latin - Modèle de données
Comme indiqué dans les chapitres précédents, le modèle de données de Pig est entièrement imbriqué. UNERelationest la structure la plus externe du modèle de données Pig Latin. Et c'est unbag où -
- Un sac est une collection de tuples.
- Un tuple est un ensemble ordonné de champs.
- Un champ est une donnée.
Pig Latin - Statemets
Lors du traitement des données avec Pig Latin, statements sont les constructions de base.
Ces déclarations fonctionnent avec relations. Ils incluentexpressions et schemas.
Chaque instruction se termine par un point-virgule (;).
Nous effectuerons diverses opérations à l'aide d'opérateurs fournis par Pig Latin, à travers des instructions.
À l'exception de LOAD et STORE, lors de l'exécution de toutes les autres opérations, les instructions Pig Latin prennent une relation en entrée et en produisent une autre en sortie.
Dès que vous entrez un Loaddans le shell Grunt, sa vérification sémantique sera effectuée. Pour voir le contenu du schéma, vous devez utiliser leDumpopérateur. Seulement après avoir effectué ledump opération, le travail MapReduce de chargement des données dans le système de fichiers sera exécuté.
Exemple
Vous trouverez ci-dessous une instruction Pig Latin, qui charge les données sur Apache Pig.
grunt> Student_data = LOAD 'student_data.txt' USING PigStorage(',')as
( id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray );
Pig Latin - Types de données
Le tableau ci-dessous décrit les types de données Pig Latin.
SN | Type de données | Description et exemple |
---|---|---|
1 | int | Représente un entier 32 bits signé. Example : 8 |
2 | longue | Représente un entier 64 bits signé. Example : 5 L |
3 | flotte | Représente une virgule flottante 32 bits signée. Example : 5.5F |
4 | double | Représente une virgule flottante 64 bits. Example : 10,5 |
5 | chararray | Représente un tableau de caractères (chaîne) au format Unicode UTF-8. Example : 'point de tutoriels' |
6 | Bytearray | Représente un tableau d'octets (blob). |
sept | Booléen | Représente une valeur booléenne. Example : vrai faux. |
8 | Datetime | Représente une date-heure. Example : 1970-01-01T00: 00: 00.000 + 00: 00 |
9 | Biginteger | Représente un BigInteger Java. Example : 60708090709 |
dix | Bigdecimal | Représente un Java BigDecimal Example : 185,98376256272893883 |
Types complexes | ||
11 | Tuple | Un tuple est un ensemble ordonné de champs. Example : (raja, 30 ans) |
12 | Sac | Un sac est une collection de tuples. Example : {(raju, 30), (Mohhammad, 45)} |
13 | Carte | Une carte est un ensemble de paires clé-valeur. Example : ['nom' # 'Raju', 'âge' # 30] |
Valeurs nulles
Les valeurs de tous les types de données ci-dessus peuvent être NULL. Apache Pig traite les valeurs nulles de la même manière que SQL.
Un null peut être une valeur inconnue ou une valeur inexistante. Il est utilisé comme espace réservé pour les valeurs facultatives. Ces valeurs nulles peuvent se produire naturellement ou être le résultat d'une opération.
Pig Latin - Opérateurs arithmétiques
Le tableau suivant décrit les opérateurs arithmétiques de Pig Latin. Supposons a = 10 et b = 20.
Opérateur | La description | Exemple |
---|---|---|
+ | Addition - Ajoute des valeurs de chaque côté de l'opérateur |
a + b donnera 30 |
- | Subtraction - Soustrait l'opérande de droite de l'opérande de gauche |
a - b donnera −10 |
* | Multiplication - Multiplie les valeurs de part et d'autre de l'opérateur |
a * b donnera 200 |
/ | Division - Divise l'opérande de gauche par l'opérande de droite |
b / a donnera 2 |
% | Modulus - Divise l'opérande de gauche par l'opérande de droite et renvoie le reste |
b% a donnera 0 |
? : | Bincond- Évalue les opérateurs booléens. Il a trois opérandes comme indiqué ci-dessous. variable x = (expression)? value1 si vrai :value2 si faux . |
b = (a == 1)? 20: 30; si a = 1, la valeur de b est 20. si a! = 1 la valeur de b est 30. |
CAS QUAND PUIS AUTRE FIN |
Case - L'opérateur case est équivalent à l'opérateur bincond imbriqué. |
CAS f2% 2 QUAND 0 PUIS 'même' QUAND 1 PUIS 'impair' FIN |
Pig Latin - Opérateurs de comparaison
Le tableau suivant décrit les opérateurs de comparaison de Pig Latin.
Opérateur | La description | Exemple |
---|---|---|
== | Equal- Vérifie si les valeurs de deux opérandes sont égales ou non; si oui, alors la condition devient vraie. |
(a = b) n'est pas vrai |
! = | Not Equal- Vérifie si les valeurs de deux opérandes sont égales ou non. Si les valeurs ne sont pas égales, la condition devient vraie. |
(a! = b) est vrai. |
> | Greater than- Vérifie si la valeur de l'opérande gauche est supérieure à la valeur de l'opérande droit. Si oui, alors la condition devient vraie. |
(a> b) n'est pas vrai. |
< | Less than- Vérifie si la valeur de l'opérande gauche est inférieure à la valeur de l'opérande droit. Si oui, alors la condition devient vraie. |
(a <b) est vrai. |
> = | Greater than or equal to- Vérifie si la valeur de l'opérande gauche est supérieure ou égale à la valeur de l'opérande droit. Si oui, alors la condition devient vraie. |
(a> = b) n'est pas vrai. |
<= | Less than or equal to- Vérifie si la valeur de l'opérande gauche est inférieure ou égale à la valeur de l'opérande droit. Si oui, alors la condition devient vraie. |
(a <= b) est vrai. |
allumettes | Pattern matching - Vérifie si la chaîne du côté gauche correspond à la constante du côté droit. |
f1 correspond à ". * tutorial. *" |
Pig Latin - Opérateurs de construction de type
Le tableau suivant décrit les opérateurs de construction Type de Pig Latin.
Opérateur | La description | Exemple |
---|---|---|
() | Tuple constructor operator - Cet opérateur est utilisé pour construire un tuple. |
(Raju, 30 ans) |
{} | Bag constructor operator - Cet opérateur sert à construire un sac. |
{(Raju, 30 ans), (Mohammad, 45 ans)} |
[] | Map constructor operator - Cet opérateur est utilisé pour construire un tuple. |
[nom # Raja, 30 ans] |
Pig Latin - Opérations relationnelles
Le tableau suivant décrit les opérateurs relationnels de Pig Latin.
Opérateur | La description |
---|---|
Loading and Storing | |
CHARGE | Pour charger les données du système de fichiers (local / HDFS) dans une relation. |
BOUTIQUE | Pour enregistrer une relation avec le système de fichiers (local / HDFS). |
Filtration | |
FILTRE | Pour supprimer les lignes indésirables d'une relation. |
DISTINCT | Pour supprimer les lignes dupliquées d'une relation. |
AVANT CHAQUE, GÉNÉRER | Pour générer des transformations de données basées sur des colonnes de données. |
COURANT | Transformer une relation à l'aide d'un programme externe. |
Regroupement et jointure | |
JOINDRE | Pour rejoindre deux ou plusieurs relations. |
COGROUP | Pour regrouper les données en deux ou plusieurs relations. |
GROUPE | Pour regrouper les données dans une seule relation. |
TRAVERSER | Pour créer le produit croisé de deux ou plusieurs relations. |
Tri | |
ORDRE | Pour organiser une relation dans un ordre trié basé sur un ou plusieurs champs (croissant ou décroissant). |
LIMITE | Pour obtenir un nombre limité de tuples à partir d'une relation. |
Combinaison et fractionnement | |
SYNDICAT | Combiner deux ou plusieurs relations en une seule relation. |
DIVISÉ | Pour diviser une seule relation en deux ou plusieurs relations. |
Opérateurs de diagnostic | |
DÉVERSER | Pour imprimer le contenu d'une relation sur la console. |
DÉCRIS | Décrire le schéma d'une relation. |
EXPLIQUE | Pour afficher les plans d'exécution logiques, physiques ou MapReduce pour calculer une relation. |
ILLUSTRER | Pour afficher l'exécution étape par étape d'une série d'instructions. |