Apache Pig - uruchamianie skryptów

W tym rozdziale zobaczymy, jak uruchamiać skrypty Apache Pig w trybie wsadowym.

Komentarze w skrypcie świni

Pisząc skrypt w pliku, możemy dołączyć do niego komentarze, jak pokazano poniżej.

Komentarze wielowierszowe

Zaczniemy wielowierszowe komentarze od „/ *”, a zakończymy na „* /”.

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

Komentarze jednowierszowe

Zaczynamy jednowierszowe komentarze od „-”.

--we can write single line comments like this.

Wykonywanie skryptu świni w trybie wsadowym

Podczas wykonywania instrukcji Apache Pig w trybie wsadowym postępuj zgodnie z instrukcjami podanymi poniżej.

Krok 1

Zapisz wszystkie wymagane instrukcje Pig Latin w jednym pliku. Możemy zapisać wszystkie instrukcje i polecenia Pig Latin w jednym pliku i zapisać go jako.pig plik.

Krok 2

Uruchom skrypt Apache Pig. Możesz wykonać skrypt Pig z powłoki (Linux), jak pokazano poniżej.

Tryb lokalny Tryb MapReduce
$ pig -x local Sample_script.pig $ pig -x mapreduce Sample_script.pig

Możesz go również uruchomić z powłoki Grunt, używając polecenia exec, jak pokazano poniżej.

grunt> exec /sample_script.pig

Wykonywanie skryptu świni z HDFS

Możemy również wykonać skrypt Pig, który znajduje się w HDFS. Załóżmy, że istnieje skrypt Pig z nazwąSample_script.pig w katalogu HDFS o nazwie /pig_data/. Możemy to wykonać, jak pokazano poniżej.

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

Przykład

Załóżmy, że mamy plik student_details.txt w formacie HDFS z następującą zawartością.

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

Mamy też przykładowy skrypt z nazwą sample_script.pig, w tym samym katalogu HDFS. Ten plik zawiera instrukcje wykonujące operacje i przekształcenia nastudent relacji, jak pokazano poniżej.

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;
  • Pierwsza instrukcja skryptu załaduje dane z pliku o nazwie student_details.txt jako nazwanej relacji student.

  • Druga instrukcja skryptu uporządkuje krotki relacji w porządku malejącym, na podstawie wieku, i zapisze ją jako student_order.

  • Trzecia instrukcja skryptu będzie przechowywać pierwsze 4 krotki student_order tak jak student_limit.

  • Wreszcie czwarta instrukcja zrzuci zawartość relacji student_limit.

Wykonajmy teraz sample_script.pig jak pokazano niżej.

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

Apache Pig zostanie wykonany i wyświetli dane wyjściowe z następującą zawartością.

(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)