Pig (programma)

Pig
software
Genereanalitiche (non in lista)
SviluppatoreApache Software Foundation
Data prima versione11 settembre 2008 e 16 maggio 2011
Ultima versione0.17.0 (19 giugno 2017)
Sistema operativoMultipiattaforma
LinguaggioJava
Licenzalicenza Apache
(licenza libera)
Sito webpig.apache.org

Pig[1] è una piattaforma di alto livello per creare programmi MapReduce da usare con Apache Hadoop. Il linguaggio per questa piattaforma è chiamato Pig Latin.

Questo astrae la programmazione dall'idioma Java MapReduce in una notazione che rende la programmazione MapReduce di alto livello in maniera simile all'SQL dei sistemi RDBMS. Il Pig Latin può essere esteso usando UDF (User Defined Functions) con cui l'utente può scrivere in Java, Python, JavaScript, Ruby o Groovy[2] e chiamare direttamente dal linguaggio.

Fu sviluppato all'inizio da Yahoo Research nel 2006[3] per i ricercatori per avere una maniera ad hoc per creare ed eseguire job Map-Reduce su grandi insiemi di dati. Nel 2007[4] è passato ad Apache Software Foundation[5].

Esempio[modifica | modifica wikitesto]

Un esempio di programma "conta parole" in Pig Latin:

 input_lines = LOAD '/tmp/my-copy-of-all-pages-on-internet' AS (line:chararray);    -- Extract words from each line and put them into a pig bag  -- datatype, then flatten the bag to get one word on each row  words = FOREACH input_lines GENERATE FLATTEN(TOKENIZE(line)) AS word;    -- filter out any words that are just white spaces  filtered_words = FILTER words BY word MATCHES '\\w+';    -- create a group for each word  word_groups = GROUP filtered_words BY word;    -- count the entries in each group  word_count = FOREACH word_groups GENERATE COUNT(filtered_words) AS count, group AS word;    -- order the records by count  ordered_word_count = ORDER word_count BY count DESC;  STORE ordered_word_count INTO '/tmp/number-of-words-on-internet'; 

Il programma genera un eseguibile con compiti eseguiti in parallelo che possono essere distribuiti su più macchine in un cluster Hadoop per contare il numero di parole in un insieme di dati come tutte pagine web su internet.

Note[modifica | modifica wikitesto]

  1. ^ Hadoop: Apache Pig, su pig.apache.org. URL consultato il Sep 2, 2011.
  2. ^ Pig user defined functions, su pig.apache.org. URL consultato il 3 maggio 2013.
  3. ^ Yahoo Blog:Pig – The Road to an Efficient High-level language for Hadoop, su developer.yahoo.com. URL consultato il 23 maggio 2015 (archiviato dall'url originale il 3 febbraio 2016).
  4. ^ Pig into Incubation at the Apache Software Foundation, su developer.yahoo.com. URL consultato il 23 maggio 2015 (archiviato dall'url originale il 3 febbraio 2016).
  5. ^ The Apache Software Foundation, su apache.org. URL consultato il Nov 1, 2010.

Collegamenti esterni[modifica | modifica wikitesto]

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica