🐷 Tutorial de Apache Pig
1. ¿Qué es Pig?
Apache Pig es una plataforma para procesar grandes volúmenes de datos en Hadoop.
• Usa un lenguaje llamado Pig Latin, más simple que escribir MapReduce en Java.
• Los scripts Pig Latin se traducen internamente en jobs de MapReduce.
• Ideal para procesamientos ETL (Extract–Transform–Load).
👉 Mientras que Hive está más orientado a consultas analíticas con SQL, Pig es más
procedimental y flexible para transformaciones complejas.
2. Modos de ejecución
• Local mode: ejecuta Pig en tu sistema de ficheros local (para pruebas).
pig -x local
• MapReduce mode: ejecuta en Hadoop (por defecto).
pig
También puedes ejecutar un script:
pig [Link]
3. Sintaxis básica de Pig Latin
📂 Cargar datos
-- Desde HDFS
data = LOAD '/bigdata/datos/[Link]'
USING PigStorage(',')
AS (id:int, nombre:chararray, ciclo:chararray);
🔍 Operaciones básicas
-- Proyección (seleccionar columnas)
nombres = FOREACH data GENERATE nombre, ciclo;
-- Filtro
dam = FILTER data BY ciclo == 'DAM';
-- Ordenar
ordenados = ORDER data BY nombre ASC;
-- Agrupar
grupo_ciclo = GROUP data BY ciclo;
-- Agregación
cuenta_ciclo = FOREACH grupo_ciclo GENERATE group, COUNT(data);
-- Unir datasets
otros = LOAD '/bigdata/datos/[Link]' USING PigStorage(',')
AS (id:int, edad:int);
join_data = JOIN data BY id, otros BY id;
💾 Guardar resultados
STORE cuenta_ciclo INTO '/bigdata/resultados/cuenta_ciclo'
USING PigStorage(',');
4. Funciones integradas (UDFs)
Pig tiene funciones listas como:
• COUNT(), SUM(), AVG(), MAX(), MIN()
• TOKENIZE() → dividir texto en palabras
• LOWER(), UPPER() → manipular cadenas
Ejemplo:
palabras = LOAD '/bigdata/datos/[Link]' USING TextLoader() AS
(linea:chararray);
tokens = FOREACH palabras GENERATE FLATTEN(TOKENIZE(linea)) AS palabra;
agrupadas = GROUP tokens BY palabra;
conteo = FOREACH agrupadas GENERATE group, COUNT(tokens);
Ese script es el WordCount en Pig.
5. Ejercicios prácticos 🎓
Ejercicio 1 – Crear dataset de alumnos
1. Subir a HDFS un archivo [Link] con formato:
1,Pepe,DAM
2,Ana,DAW
3,Luis,DAM
2. Crear un script Pig para:
• Cargar los datos.
• Mostrar solo los nombres.
• Filtrar los alumnos de DAM.
Ejercicio 2 – Ventas por producto
1. Subir [Link]:
1,productoA,5
2,productoB,2
3,productoA,3
2. En Pig:
• Agrupar por producto.
• Calcular el total de ventas por producto.
• Guardar el resultado en /bigdata/resultados/ventas_total.
Ejercicio 3 – WordCount
1. Subir un archivo de texto a HDFS.
2. Crear un script Pig que:
• Tokenice las palabras.
• Cuente las apariciones de cada palabra.
• Guarde los resultados.
Ejercicio 4 – Join de datasets
1. Subir [Link] (id, nombre).
2. Subir [Link] (id_cliente, producto).
3. En Pig:
• Cargar ambos datasets.
• Hacer un JOIN por id_cliente.
• Mostrar nombre del cliente y producto.
6. Consejos
• Pig es muy bueno para pipeline de transformaciones, más flexible que Hive.
• Para consultas interactivas → mejor Hive o Spark SQL.
• Para procesar texto no estructurado → Pig es muy práctico.
• Si quieres extender funcionalidades, puedes escribir UDFs en Python o Java.