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.