Pig es una plataforma de alto nivel para crear programas MapReduce utilizados en Hadoop. El lenguaje de esta plataforma es llamado Pig Latin. 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 y luego llamar directamente desde el lenguaje.

Pig fue desarrollado originalmente 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, fue trasladado a Apache Software Foundation.

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

Enlaces externos Sitio web oficial (en inglés)

Categoría:Apache Software Foundation Categoría:Computación en nube Categoría:Software libre programado en Java Categoría:Lenguajes de consulta Categoría:Big data Categoría:Software que utiliza la licencia Apache