Apache Pig - Esecuzione di script

In questo capitolo vedremo come eseguire gli script di Apache Pig in modalità batch.

Commenti in Pig Script

Durante la scrittura di uno script in un file, possiamo includere commenti in esso come mostrato di seguito.

Commenti su più righe

Inizieremo i commenti su più righe con "/ *", termineremo con "* /".

/* These are the multi-line comments 
  In the pig script */

Commenti su una sola riga

Inizieremo i commenti su una riga con "-".

--we can write single line comments like this.

Esecuzione di Pig Script in modalità batch

Durante l'esecuzione delle istruzioni di Apache Pig in modalità batch, seguire i passaggi indicati di seguito.

Passo 1

Scrivi tutte le istruzioni Pig Latin richieste in un unico file. Possiamo scrivere tutte le istruzioni e i comandi di Pig Latin in un unico file e salvarlo come.pig file.

Passo 2

Esegui lo script Apache Pig. È possibile eseguire lo script Pig dalla shell (Linux) come mostrato di seguito.

Modalità locale Modalità MapReduce
$ maiale -x locale Sample_script.pig $ pig -x mapreduce Sample_script.pig

Puoi eseguirlo anche dalla shell Grunt usando il comando exec come mostrato di seguito.

grunt> exec /sample_script.pig

Esecuzione di uno script Pig da HDFS

Possiamo anche eseguire uno script Pig che risiede nell'HDFS. Supponiamo che ci sia uno script Pig con il nomeSample_script.pig nella directory HDFS denominata /pig_data/. Possiamo eseguirlo come mostrato di seguito.

$ pig -x mapreduce hdfs://localhost:9000/pig_data/Sample_script.pig

Esempio

Supponiamo di avere un file student_details.txt in HDFS con il seguente contenuto.

student_details.txt

001,Rajiv,Reddy,21,9848022337,Hyderabad 
002,siddarth,Battacharya,22,9848022338,Kolkata
003,Rajesh,Khanna,22,9848022339,Delhi 
004,Preethi,Agarwal,21,9848022330,Pune 
005,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar 
006,Archana,Mishra,23,9848022335,Chennai 
007,Komal,Nayak,24,9848022334,trivendram 
008,Bharathi,Nambiayar,24,9848022333,Chennai

Abbiamo anche uno script di esempio con il nome sample_script.pig, nella stessa directory HDFS. Questo file contiene istruzioni che eseguono operazioni e trasformazioni sustudent relazione, come mostrato di seguito.

student = LOAD 'hdfs://localhost:9000/pig_data/student_details.txt' USING PigStorage(',')
   as (id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray);
	
student_order = ORDER student BY age DESC;
  
student_limit = LIMIT student_order 4;
  
Dump student_limit;
  • La prima istruzione dello script caricherà i dati nel file denominato student_details.txt come una relazione denominata student.

  • La seconda affermazione dello script organizzerà le tuple della relazione in ordine decrescente, in base all'età, e la memorizzerà come student_order.

  • La terza istruzione dello script memorizzerà le prime 4 tuple di student_order come student_limit.

  • Infine la quarta affermazione scaricherà il contenuto della relazione student_limit.

Eseguiamo ora il file sample_script.pig come mostrato di seguito.

$./pig -x mapreduce hdfs://localhost:9000/pig_data/sample_script.pig

Apache Pig viene eseguito e fornisce l'output con il seguente contenuto.

(7,Komal,Nayak,24,9848022334,trivendram)
(8,Bharathi,Nambiayar,24,9848022333,Chennai) 
(5,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar) 
(6,Archana,Mishra,23,9848022335,Chennai)
2015-10-19 10:31:27,446 [main] INFO  org.apache.pig.Main - Pig script completed in 12
minutes, 32 seconds and 751 milliseconds (752751 ms)