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á tareas ejecutables paralelas que se pueden distribuir a través de múltiples máquinas en un cluster Hadoop para contar el número de palabras en un conjunto de datos, como por ejemplo todas las páginas web en Internet.

Véase también

Referencias

  1. «Hadoop: Apache Pig». Consultado el 2 de septiembre de 2011.
  2. «Pig user defined functions». Consultado el 3 de mayo de 2013.
  3. «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.
  4. «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.
  5. «The Apache Software Foundation». Consultado el 1 de noviembre de 2010.

Enlaces externos

Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.