Pig (herramienta de programación)
Pig[1] es una plataforma de alto nivel para crear programas MapReduce utilizados en Hadoop. El lenguaje de esta plataforma es llamado Pig Latin.[1] Pig Latin abstrae la programación desde el lenguaje Java MapReduce en una notación que hace de MapReduce programación de alto nivel, similar a la de SQL para sistemas RDBMS. Pig Latin puede ser ampliado utilizando UDF (Funciones Definidas por el Usuario) que el usuario puede escribir en Java, Python, Javascript, Ruby o Groovy[2] y luego llamar directamente desde el lenguaje.
Pig fue desarrollado originalmente[3] por Yahoo Research en torno a 2006 por los investigadores para tener una forma ad-hoc de crear y ejecutar un trabajo map-reduce en conjuntos de datos muy grandes. En 2007,[4] fue trasladado a Apache Software Foundation.[5]
Ejemplo
A continuación se muestra un ejemplo de un programa de "Word Count" en Pig Latin:
lineas_de_entrada = LOAD '/tmp/mi-copia-de-todas-las-paginas-en-internet' AS (linea:chararray);
-- Extrae las palabras de cada línea y las coloca en un tipo de dato "bolsa" de Pig,
-- a continuación aplana la bolsa para obtener una palabra en cada fila
palabras = FOREACH lineas_de_entrada GENERATE FLATTEN(TOKENIZE(linea)) AS palabra;
-- elimina cualquier palabra que sólo contenga espacios en blanco
palabras_filtradas = FILTER palabras BY palabra MATCHES '\\w+';
-- crear un grupo para cada palabra
grupo_de_palabras = GROUP palabras_filtradas BY palabra;
-- contar las entradas en cada grupo
conteo_de_palabras = FOREACH grupo_de_palabras GENERATE COUNT(palabras_filtradas) AS conteo, group AS palabra;
-- ordenar los registros por recuento
conteo_de_palabras_ordenado = ORDER conteo_de_palabras BY conteo DESC;
STORE conteo_de_palabras_ordenado INTO '/tmp/numero-de-palabras-en-internet';
El programa anterior generarà tasques executables paral·leles que es poden distribuir a través de diverses màquines en un clúster Hadoop per comptar el nombre de paraules en un conjunt de dades com totes les pàgines web a Internet.
Véase también
- Apache Hive
- Sawzall (lenguaje de programación) (en inglés)
Referencias
- «Hadoop: Apache Pig». Consultado el 2 de septiembre de 2011.
- «Pig user defined functions». Consultado el 3 de mayo de 2013.
- «Yahoo Blog:Pig – The Road to an Efficient High-level language for Hadoop». Archivado desde el original el 3 de febrero de 2016. Consultado el 23 de mayo de 2015.
- «Pig into Incubation at the Apache Software Foundation». Archivado desde el original el 3 de febrero de 2016. Consultado el 23 de mayo de 2015.
- «The Apache Software Foundation». Consultado el 1 de noviembre de 2010.
Enlaces externos
- Sitio web oficial (en inglés)