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)