Apache Pig - Ausführen von Skripten

Hier in diesem Kapitel erfahren Sie, wie Sie Apache Pig-Skripte im Batch-Modus ausführen.

Kommentare in Pig Script

Während Sie ein Skript in eine Datei schreiben, können Sie Kommentare hinzufügen, wie unten gezeigt.

Mehrzeilige Kommentare

Wir beginnen die mehrzeiligen Kommentare mit '/ *' und beenden sie mit '* /'.

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

Einzeilige Kommentare

Wir beginnen die einzeiligen Kommentare mit '-'.

--we can write single line comments like this.

Pig Script im Batch-Modus ausführen

Führen Sie die folgenden Schritte aus, während Sie Apache Pig-Anweisungen im Stapelmodus ausführen.

Schritt 1

Schreiben Sie alle erforderlichen Pig Latin-Anweisungen in eine einzige Datei. Wir können alle Pig Latin-Anweisungen und -Befehle in eine einzige Datei schreiben und unter speichern.pig Datei.

Schritt 2

Führen Sie das Apache Pig-Skript aus. Sie können das Pig-Skript wie unten gezeigt über die Shell (Linux) ausführen.

Lokalbetrieb MapReduce-Modus
$ pig -x lokal Sample_script.pig $ pig -x mapreduce Sample_script.pig

Sie können es auch über die Grunt-Shell ausführen, indem Sie den Befehl exec wie unten gezeigt verwenden.

grunt> exec /sample_script.pig

Ausführen eines Pig-Skripts aus HDFS

Wir können auch ein Pig-Skript ausführen, das sich im HDFS befindet. Angenommen, es gibt ein Pig-Skript mit dem NamenSample_script.pig im HDFS-Verzeichnis mit dem Namen /pig_data/. Wir können es wie unten gezeigt ausführen.

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

Beispiel

Angenommen, wir haben eine Datei student_details.txt in HDFS mit folgendem Inhalt.

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

Wir haben auch ein Beispielskript mit dem Namen sample_script.pigim selben HDFS-Verzeichnis. Diese Datei enthält Anweisungen, die Operationen und Transformationen auf dem ausführenstudent Beziehung, wie unten gezeigt.

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;
  • Die erste Anweisung des Skripts lädt die Daten in die genannte Datei student_details.txt als eine Beziehung benannt student.

  • Die zweite Anweisung des Skripts ordnet die Tupel der Beziehung in absteigender Reihenfolge nach Alter an und speichert sie als student_order.

  • Die dritte Anweisung des Skripts speichert die ersten 4 Tupel von student_order wie student_limit.

  • Schließlich wird die vierte Anweisung den Inhalt der Beziehung ausgeben student_limit.

Lassen Sie uns nun das ausführen sample_script.pig Wie nachfolgend dargestellt.

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

Apache Pig wird ausgeführt und gibt Ihnen die Ausgabe mit dem folgenden Inhalt.

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