Introducció a Apache Pig

Apache Pig és una plataforma d'alt nivell per crear programes que s'executen a Hadoop. La seva principal característica és el llenguatge Pig Latin, que permet als usuaris escriure scripts per processar dades de manera més senzilla i eficient que amb MapReduce.

Característiques clau d'Apache Pig:

  • Simplicitat: Pig Latin és més fàcil d'aprendre i utilitzar que MapReduce.
  • Flexibilitat: Pot processar qualsevol tipus de dades, estructurades o no estructurades.
  • Optimització automàtica: Pig optimitza automàticament els scripts per millorar el rendiment.
  • Extensibilitat: Permet als usuaris definir les seves pròpies funcions (UDFs) per a operacions personalitzades.

Components d'Apache Pig

Pig Latin

Pig Latin és el llenguatge de programació utilitzat per Apache Pig. És un llenguatge de flux de dades que permet als usuaris descriure com les dades han de ser processades.

Grunt Shell

Grunt és la línia de comandes interactiva de Pig. Permet als usuaris executar comandes Pig Latin de manera interactiva.

UDFs (User Defined Functions)

Les UDFs permeten als usuaris estendre la funcionalitat de Pig Latin amb funcions personalitzades escrites en Java, Python, o altres llenguatges.

Instal·lació d'Apache Pig

Requisits previs

  • Java JDK 1.8 o superior
  • Hadoop 2.x o superior

Passos d'instal·lació

  1. Descarregar Apache Pig:
    wget http://apache.mirrors.pair.com/pig/pig-0.17.0/pig-0.17.0.tar.gz
    
  2. Descomprimir l'arxiu descarregat:
    tar -xzvf pig-0.17.0.tar.gz
    
  3. Configurar les variables d'entorn: Afegir les següents línies al fitxer .bashrc o .zshrc:
    export PIG_HOME=/path/to/pig-0.17.0
    export PATH=$PATH:$PIG_HOME/bin
    
  4. Carregar les variables d'entorn:
    source ~/.bashrc
    

Primer Script en Pig Latin

Exemple de script Pig Latin

A continuació es mostra un exemple senzill de com carregar, processar i emmagatzemar dades amb Pig Latin.

Script: example.pig

-- Carregar dades des d'un fitxer
data = LOAD 'input_data.txt' USING PigStorage(',') AS (name:chararray, age:int, city:chararray);

-- Filtrar dades per edat
filtered_data = FILTER data BY age > 25;

-- Agrupar dades per ciutat
grouped_data = GROUP filtered_data BY city;

-- Comptar el nombre de persones per ciutat
city_count = FOREACH grouped_data GENERATE group AS city, COUNT(filtered_data) AS count;

-- Emmagatzemar el resultat en un fitxer
STORE city_count INTO 'output_data' USING PigStorage(',');

Executar el script

Per executar el script example.pig, utilitzeu la següent comanda:

pig example.pig

Exercicis Pràctics

Exercici 1: Filtrar i Agrupar Dades

Objectiu: Escriure un script Pig Latin que carregui un conjunt de dades, filtri les files on l'edat és superior a 30, i agrupi les dades per ciutat.

Dades d'entrada: people_data.txt

John,28,New York
Jane,35,Los Angeles
Mike,40,Chicago
Anna,22,New York
Tom,31,Los Angeles

Script esperat:

-- Carregar dades
people = LOAD 'people_data.txt' USING PigStorage(',') AS (name:chararray, age:int, city:chararray);

-- Filtrar per edat
filtered_people = FILTER people BY age > 30;

-- Agrupar per ciutat
grouped_people = GROUP filtered_people BY city;

-- Comptar el nombre de persones per ciutat
city_counts = FOREACH grouped_people GENERATE group AS city, COUNT(filtered_people) AS count;

-- Emmagatzemar el resultat
STORE city_counts INTO 'filtered_people_output' USING PigStorage(',');

Solució

-- Carregar dades
people = LOAD 'people_data.txt' USING PigStorage(',') AS (name:chararray, age:int, city:chararray);

-- Filtrar per edat
filtered_people = FILTER people BY age > 30;

-- Agrupar per ciutat
grouped_people = GROUP filtered_people BY city;

-- Comptar el nombre de persones per ciutat
city_counts = FOREACH grouped_people GENERATE group AS city, COUNT(filtered_people) AS count;

-- Emmagatzemar el resultat
STORE city_counts INTO 'filtered_people_output' USING PigStorage(',');

Resum

En aquesta secció, hem après sobre Apache Pig, una eina poderosa per processar grans volums de dades a Hadoop. Hem explorat les seves característiques clau, components, i com instal·lar-lo. També hem vist un exemple pràctic de com escriure i executar un script Pig Latin. Finalment, hem proporcionat un exercici pràctic per reforçar els conceptes apresos. En el següent mòdul, explorarem Apache Hive, una altra eina important de l'ecosistema Hadoop.

© Copyright 2024. Tots els drets reservats