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
Referencias
Enlaces externos