Operadores en Apache Pig: Parte 1- Operadores relacionales



Esta publicación describe sobre los operadores en Apache Pig. Eche un vistazo a esta publicación para Operadores en Apache Pig: Parte 1 - Operadores relacionales.

Esta publicación trata sobre los operadores en Apache Pig.Apache Pig también le permite escribir transformaciones de datos complejas sin el conocimiento de Java, lo que lo hace realmente importante para el .Echemos un vistazo rápido a qué es Pig y Pig Latin y los diferentes modos en los que se pueden operar, antes de pasar a Operadores.

¿Qué es Apache Pig?

Apache Pig es un lenguaje de procedimiento de alto nivel para consultar grandes conjuntos de datos utilizando Hadoop y Map Reduce Platform. Es un paquete de Java, donde los scripts se pueden ejecutar desde cualquier implementación de lenguaje que se ejecute en la JVM. Esto se usa mucho en procesos iterativos.





Apache Pig simplifica el uso de Hadoop al permitir consultas similares a SQL a un conjunto de datos distribuido y hace posible crear tareas complejas para procesar grandes volúmenes de datos de forma rápida y eficaz. La mejor característica de Pig es que respalda muchas características relacionales como Join, Group y Aggregate.

Sé que Pig suena mucho más como una herramienta ETL y tiene muchas características comunes con las herramientas ETL. Pero la ventaja de Pig sobre las herramientas ETL es que puede ejecutarse en muchos servidores simultáneamente.



system.exit (0) java

¿Qué es Apache Pig Latin?

Apache Pig crea una abstracción de lenguaje procedimental más simple sobre Map Reduce para exponer una interfaz más similar al lenguaje de consulta estructurado (SQL) para aplicaciones Hadoop llamada Apache Pig Latin, por lo que en lugar de escribir una aplicación Map Reduce separada, puede escribir un solo script en Apache Pig Latin que se paraleliza y distribuye automáticamente en un clúster. En palabras simples, Pig Latin, es una secuencia de declaraciones simples que toman una entrada y producen una salida. Los datos de entrada y salida se componen de bolsas, mapas, tuplas y escalares.

Modos de ejecución de Apache Pig:

Apache Pig tiene dos modos de ejecución:

  • Modo local

En 'Modo local', los datos de origen se seleccionarían del directorio local de su sistema informático. El modo MapReduce se puede especificar mediante el comando 'pig –x local'.



Operadores en Apache Pig - 1

  • Modo MapReduce:

Para ejecutar Pig en modo MapReduce, necesita acceso al clúster de Hadoop y la instalación de HDFS. El modo MapReduce se puede especificar mediante el comando 'cerdo'.

Operadores de Apache Pig:

Los operadores de Apache Pig son un lenguaje de procedimiento de alto nivel para consultar grandes conjuntos de datos usando Hadoop y la plataforma Map Reduce. Una declaración Pig Latin es un operador que toma una relación como entrada y produce otra relación como salida. Estos operadores son las principales herramientas que Pig Latin proporciona para operar con los datos. Le permiten transformarlo clasificando, agrupando, uniendo, proyectando y filtrando.

Creemos dos archivos para ejecutar los comandos:

Tenemos dos archivos con el nombre 'primero' y 'segundo'. El primer archivo contiene tres campos: usuario, url e id.

El segundo archivo contiene dos campos: url y calificación. Estos dos archivos son archivos CSV.

Los operadores de Apache Pig se pueden clasificar como: Relacional y diagnóstico.

Operadores relacionales:

Los operadores relacionales son las principales herramientas que proporciona Pig Latin para operar con los datos. Le permite transformar los datos ordenando, agrupando, uniendo, proyectando y filtrando. Esta sección cubre los operadores relacionales básicos.

CARGA:

El operador LOAD se usa para cargar datos del sistema de archivos o del almacenamiento HDFS en una relación Pig.

En este ejemplo, el operador de carga carga los datos del archivo 'primero' para formar la relación 'carga1'. Los nombres de los campos son usuario, url, id.

PARA CADA:

Este operador genera transformaciones de datos basadas en columnas de datos. Se utiliza para agregar o eliminar campos de una relación. Utilice la operación FOREACH-GENERATE para trabajar con columnas de datos.

PARA CADA Resultado:

FILTRAR:

Este operador selecciona tuplas de una relación en función de una condición.

En este ejemplo, estamos filtrando el registro de 'loading1' cuando la condición 'id' es mayor que 8.

Resultado del FILTRO:

UNIRSE:

El operador JOIN se utiliza para realizar una combinación de equijoin interna de dos o más relaciones basadas en valores de campo comunes. El operador JOIN siempre realiza una combinación interna. Las combinaciones internas ignoran las claves nulas, por lo que tiene sentido filtrarlas antes de la combinación.

En este ejemplo, une las dos relaciones basadas en la columna 'url' de 'loading1' y 'loading2'.

ÚNETE Resultado:

ORDENAR POR:

Ordenar por se utiliza para ordenar una relación en función de uno o más campos. Puede ordenar en orden ascendente o descendente usando palabras clave ASC y DESC.

En el siguiente ejemplo, estamos ordenando datos en loading2 en orden ascendente en el campo de calificaciones.

ORDENAR POR Resultado :

DISTINTO:

Distinct elimina las tuplas duplicadas en una relación. Tomemos un archivo de entrada como se muestra a continuación, que tiene amr, mierda, 8 y amr, myblog, 10 dos veces en el archivo. Cuando aplicamos distintos en los datos de este archivo, se eliminan las entradas duplicadas.

Resultado DISTINTO:

TIENDA:

La tienda se utiliza para guardar los resultados en el sistema de archivos.

Aqui estamos ahorrando cargando3 datos en un archivo llamado almacenar en HDFS.

Resultado de TIENDA:

GRUPO:

El operador GRUPO agrupa las tuplas con la misma clave de grupo (campo clave). El campo de clave será una tupla si la clave de grupo tiene más de un campo; de lo contrario, será del mismo tipo que el de la clave de grupo. El resultado de una operación GROUP es una relación que incluye una tupla por grupo.

En este ejemplo, grupo th

La relación 'loading1' por URL de columna.

Resultado del GRUPO:

COGROUP:

COGROUP es el mismo que el operador GROUP. Para facilitar la lectura, los programadores generalmente usan GROUP cuando solo hay una relación involucrada y COGROUP cuando están involucradas múltiples relaciones.

En este ejemplo, agrupe el campo 'loading1' y 'loading2' por URL en ambas relaciones.

Resultado de COGROUP:

CRUZAR:

El operador CROSS se utiliza para calcular el producto cruzado (producto cartesiano) de dos o más relaciones.

Aplicación de producto cruzado en loading1 y loading2.

Resultado CRUZADO:

LÍMITE:

El operador LIMIT se utiliza para limitar el número de tuplas de salida. Si el número especificado de tuplas de salida es igual o superior al número de tuplas de la relación, la salida incluirá todas las tuplas de la relación.

LIMIT Resultado:

DIVISIÓN:

El operador SPLIT se usa para dividir el contenido de una relación en dos o más relaciones basadas en alguna expresión. Según las condiciones indicadas en la expresión.

Divida la carga2 en dos relaciones x e y. La relación x creada por loading2 contiene los campos que la calificación es mayor que 8 y la relación y contiene campos que la calificación es menor o igual a 8.

Tienes una pregunta para nosotros? Por favor, menciónelos en la sección de comentarios y nos comunicaremos con usted.

Artículos Relacionados:

Operadores en Apache Pig - Operadores de diagnóstico

Pasos para crear UDF en Apache Pig