Apache Pig es una abstracción de MapReduce. Es una herramienta / plataforma que se utiliza para analizar grandes conjuntos de datos, representándolos como flujos de datos. El cerdo se suele utilizar con Hadoop; podemos hacer toda la manipulación de datos en Hadoop usando Apache Pig.
Para escribir programas de análisis de datos, Pig proporciona un lenguaje de alto nivel conocido como Pig Latin… El lenguaje proporciona varios operadores con los que los programadores pueden desarrollar sus propias funciones para leer, escribir y procesar datos.
Para analizar datos usando Pig apache, los programadores necesitan escribir guiones en Pig Latin. Todos estos scripts se convierten internamente en tareas de Map y Reduce. Apache Pig tiene un componente conocido como Motor de cerdo que toma los scripts de Pig Latin como entrada y convierte esos scripts en trabajos de MapReduce.
Los programadores que no son muy expertos en Java suelen tener dificultades para trabajar con Hadoop, especialmente cuando realizan tareas de MapReduce. Apache Pig es un regalo del cielo para todos estos programadores.
A través de Pig Latinlos programadores pueden realizar fácilmente tareas de MapReduce sin escribir código complejo de Java.
Usos de Apache Pig enfoque de consulta múltiple, reduciendo así la longitud de los códigos. Por ejemplo, una operación que requiere que ingrese 200 líneas de código (LoC) en Java se puede realizar fácilmente escribiendo solo 10 líneas de código en Apache Pig. En última instancia, Apache Pig reduce el tiempo de desarrollo en casi 16 veces.
Pig Latin Lenguaje similar a SQL y Apache Pig es fácil de aprender si está familiarizado con SQL.
Apache Pig proporciona muchos operadores integrados para admitir operaciones de datos como combinaciones, filtros, ordenación, etc. Además, también proporciona tipos de datos anidados como tuplas, paquetes y mapas de los que carece MapReduce.
Apache Pig tiene las siguientes características:
Amplio conjunto de operadores – Proporciona muchos operadores para realizar operaciones como unir, ordenar, filtrar, etc.
Facilidad de programación – Pig Latin es similar a SQL, y si eres bueno en SQL, escribir un script de Pig no es difícil.
Posibilidades de optimización – Las tareas en Apache Pig optimizan automáticamente su ejecución, por lo que los programadores solo necesitan centrarse en la semántica del lenguaje.
Extensibilidad – Utilizando operadores existentes, los usuarios pueden desarrollar sus propias funciones para leer, procesar y escribir datos.
UDF – El cerdo da la oportunidad de crear Funciones personalizadas en otros lenguajes de programación como Java y llamarlos o incrustarlos en Pig Scripts.
Maneja todo tipo de datos – Apache Pig analiza todo tipo de datos, tanto estructurados como no estructurados. Almacena los resultados en HDFS.
Las principales diferencias entre Apache Pig y MapReduce se enumeran a continuación.
Pig apache | Mapa reducido |
---|---|
Apache Pig es un lenguaje de flujo de datos. | MapReduce es un paradigma de procesamiento de datos. |
Este es un idioma de alto nivel. | MapReduce es de bajo nivel y ajustado. |
La operación de conexión en Apache Pig es bastante simple. | En MapReduce es bastante difícil realizar una operación de unión entre conjuntos de datos. |
Cualquier programador novato con conocimientos básicos de SQL puede trabajar cómodamente con Apache Pig. | Se requiere familiaridad con Java para trabajar con MapReduce. |
Apache Pig adopta un enfoque de solicitudes múltiples, lo que reduce en gran medida la longitud de los códigos. | MapReduce requerirá casi 20 veces más líneas para realizar la misma tarea. |
No se requiere compilación. Cuando se ejecuta, cada declaración de Apache Pig se asigna internamente a un trabajo MapReduce. | Los trabajos de MapReduce requieren un largo proceso de compilación. |
Las siguientes son las principales diferencias entre Apache Pig y SQL.
Pig | SQL |
---|---|
Pig Latin procesal lengua. | SQL es declarativo lengua. |
En Apache Pig, esquema es opcional. Podemos almacenar datos sin crear esquemas (los valores se almacenan como $ 01, $ 02, etc.) | El esquema es obligatorio en SQL. |
Modelo de datos de Apache Pig: relación anidada… | El modelo de datos utilizado en SQL relacional plano… |
Apache Pig ofrece opciones limitadas para Optimización de consultas… | SQL tiene más opciones para optimizar consultas. |
Además de las diferencias anteriores, Apache Pig Latin:
Tanto Apache Pig como Hive se utilizan para crear trabajos MapReduce. Y en algunos casos, Hive funciona con HDFS de forma similar a Apache Pig. En la siguiente tabla, hemos enumerado algunos puntos importantes que hacen que Apache Pig sea diferente de Hive.
Pig apache | Colmena |
---|---|
Apache Pig usa un lenguaje llamado Pig Latin… Fue creado originalmente en Yahoo… | Hive usa un lenguaje llamado HiveQL… Fue creado originalmente en Facebook… |
Pig Latin es un lenguaje de flujo de datos. | HiveQL es un lenguaje de procesamiento de consultas. |
Pork Latin es un lenguaje de procedimientos que encaja en el paradigma de la tubería. | HiveQL es un lenguaje declarativo. |
Apache Pig puede manejar datos estructurados, no estructurados y semiestructurados. | Hive es principalmente para datos estructurados. |
Los científicos de datos suelen utilizar Apache Pig para realizar tareas que implican procesamiento personalizado y creación rápida de prototipos. Se utiliza Apache Pig –
EN 2006 añoApache Pig fue desarrollado en Yahoo como un proyecto de investigación específicamente para crear y ejecutar trabajos de MapReduce para cada conjunto de datos. EN 2007 añoApache Pig era de código abierto a través de Apache Incubator. EN 2008 r., se lanzó la primera versión de Apache Pig. EN 2010Apache Pig terminó como un proyecto de nivel superior de Apache.
🚫