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)