Pig Latin es un idioma que se usa para analizar datos en Hadoop usando Apache Pig. En este capítulo, vamos a discutir los conceptos básicos de Pig Latin, como los operadores Pig Latin, tipos de datos, operadores generales y relacionales y UDF Pig Latin.
Como se discutió en capítulos anteriores, el modelo de datos de Pig está completamente anidado. Y Comunicación es la estructura más externa del modelo de datos Pig Latin. Y esto bolsa dónde –
Al procesar datos con Pig Latin, declaraciones son los diseños principales.
Estas declaraciones funcionan con conexiones… Incluyen expresiones y esquemas…
Cada instrucción termina con un punto y coma (;).
Realizaremos varias operaciones utilizando los operadores proporcionados por Pig Latin a través de operadores.
A excepción de LOAD y STORE, en todas las demás operaciones, las declaraciones de Pig Latin toman una relación como entrada y crean otra relación como salida.
Tan pronto como entres Carga en el contenedor Grunt, se realizará la validación semántica. Para ver el contenido del esquema, debe usar Vertedero operador. Solo después de la ejecución vertedero la tarea MapReduce se ejecutará para cargar los datos en el sistema de archivos.
A continuación se muestra una declaración de Pig Latin que carga datos en Apache Pig.
grunt> Student_data = LOAD 'student_data.txt' USING PigStorage(',')as ( id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray );
La siguiente tabla describe los tipos de datos de Pig Latin.
SN | Tipo de datos | Descripción y ejemplo |
---|---|---|
uno | En t |
Representa un entero de 32 bits con signo. Ejemplo : 8 |
2 | a lo largo de |
Representa un entero de 64 bits con signo. Ejemplo : 5L |
3 | nadar |
Representa un punto flotante de 32 bits firmado. Ejemplo : 5.5F |
cuatro | doble |
Representa un punto flotante de 64 bits. Ejemplo : 10,5 |
cinco | Chararray |
Representa una matriz de caracteres (cadena) en formato Unicode UTF-8. Ejemplo : ‘punto de aprendizaje’ |
6 | Bytearray |
Representa una matriz de bytes (blob). |
7 | Booleano |
Representa un valor booleano. Ejemplo : verdadero Falso. |
8 | fecha y hora |
Representa la fecha y la hora. Ejemplo : 1970-01-01T00: 00: 00.000 + 00: 00 |
9 | Biginteger |
Representa Java BigInteger. Ejemplo : 60708090709 |
diez | Bigdecimal |
Representa Java BigDecimal Ejemplo : 185.98376256272893883 |
Tipos complejos | ||
once | Tupla |
Una tupla es una colección ordenada de campos. Ejemplo : (raja, 30) |
12 | Bolsa |
Una bolsa es una colección de tuplas. Ejemplo : {(Raju, 30), (Mohammad, 45)} |
trece | mapa |
Un mapa es una colección de pares clave-valor. Ejemplo : [ ‘name’#’Raju’, ‘age’#30] |
Los valores para todos los tipos de datos anteriores pueden ser NULL. Apache Pig maneja los valores nulos de la misma forma que SQL.
El valor nulo puede ser desconocido o inexistente. Se utiliza como marcador de posición para valores opcionales. Estos valores NULL pueden ocurrir naturalmente o pueden ser el resultado de una operación.
La siguiente tabla describe los operadores aritméticos Pig Latin. Suponga que a = 10 y b = 20.
Operador | Descripción | Ejemplo |
---|---|---|
& un plus; |
Añadiendo – Agrega valores a ambos lados del operador |
un plus; b dará 30 |
– |
Sustracción – Resta el operando derecho del operando izquierdo |
a – b dará −10 |
* |
Multiplicación – Multiplica los valores a ambos lados del operador |
a * b dará 200 |
/ |
Separación – Divide el operando izquierdo por el operando derecho |
usado dará 2 |
% |
Módulo – Divide el operando izquierdo por el operando derecho y devuelve el resto |
b% a dará 0 |
? : |
Bincond – Evalúa operadores lógicos. Tiene tres operandos como se muestra a continuación. Variable X = (expresión)? valor1 si es verdad : valor2 si una mentira… |
b = (a == 1)? 20:30; si a = 1, el valor de b es 20. si un! = 1, b es 30. |
NEGOCIO CUANDO ENTONCES ELSE END |
Negocio – La declaración del caso es equivalente a la declaración bincond anidada. |
CASO f2% 2 CUANDO 0 ENTONCES ‘incluso’ CUANDO 1 ENTONCES ‘impar’ FIN |
La siguiente tabla describe los operadores de comparación Pig Latin.
Operador | Descripción | Ejemplo |
---|---|---|
== |
Igual – Comprueba si los valores de dos operandos son iguales; si es así, entonces se cumple la condición. |
(a = b) incorrecto |
= |
No es igual – Comprueba si los valores de dos operandos son iguales. Si los valores no son iguales, la condición se cumple. |
(a! = b) es cierto. |
> |
Mejor que – Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho. Si es así, entonces se cumple la condición. |
(a> b) es incorrecto. |
< |
Menos que – Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho. Si es así, entonces se cumple la condición. |
(a |
> = |
Mas o igual – Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho. Si es así, entonces se cumple la condición. |
(a> = b) es incorrecto. |
<= |
Menor o igual – Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho. Si es así, entonces se cumple la condición. |
(a <= b) es cierto. |
coincidencias |
La coincidencia de patrones – Comprueba si la cadena de la izquierda es la misma que la constante de la derecha. |
partidos de f1 ‘. * tutorial. * ‘ |
La siguiente tabla describe los operadores de construcción de tipo en Pig Latin.
Operador | Descripción | Ejemplo |
---|---|---|
() |
Operador de constructor de tuplas – Este operador se usa para crear una tupla. |
(Raju, 30 años) |
{} |
Operador constructor de bolsas – Este operador se utiliza para crear una bolsa. |
{(Raju, 30), (Mohammad, 45)} |
[] |
Operador constructor de mapas – Este operador se usa para crear una tupla. |
[name#Raja, age#30] |
La siguiente tabla describe los operadores relacionales Pig Latin.
Operador | Descripción |
---|---|
Carga y almacenaje | |
CARGA | Cargue los datos del sistema de archivos (local / HDFS) en relación. |
MANTENER | Guarde la relación con el sistema de archivos (local / HDFS). |
Filtración | |
FILTRAR | Para eliminar filas innecesarias de una relación. |
DISTINTO | Para eliminar filas duplicadas de una relación. |
ANTE TODOS, GENERAR | Para crear transformaciones de datos basadas en columnas de datos. |
TRADUCIR | Transforma una relación usando un programa externo. |
Agrupar y combinar | |
UNIRSE | Une dos o más relaciones. |
COGROUP | Para agrupar datos en dos o más relaciones. |
GRUPO | Para agrupar datos en una sola relación. |
CROSS | Crear un producto cruzado de dos o más relaciones. |
Clasificación | |
ORDEN | Para organizar la relación en orden ordenado según uno o más campos (ascendente o descendente). |
LÍMITE | Obtener un número limitado de tuplas de una relación. |
Consolidación y separación | |
UNIÓN | Combinar dos o más relaciones en una sola relación. |
Separar | Dividir una relación en dos o más relaciones. |
Operadores de diagnóstico | |
DUMP | Para imprimir el contenido de la relación a la consola. |
DESCRIBIR | Describe el diagrama de relaciones. |
EXPLIQUE | Para ver planes de ejecución físicos lógicos o planes de ejecución de MapReduce para calcular una relación. |
ILUSTRACIÓN | Para ver la ejecución paso a paso de una serie de declaraciones. |
🚫