Apache Pig - Exécution de scripts
Ici, dans ce chapitre, nous verrons comment exécuter des scripts Apache Pig en mode batch.
Commentaires dans Pig Script
Lors de l'écriture d'un script dans un fichier, nous pouvons y inclure des commentaires comme indiqué ci-dessous.
Commentaires sur plusieurs lignes
Nous allons commencer les commentaires sur plusieurs lignes par '/ *', les terminer par '* /'.
/* These are the multi-line comments
In the pig script */
Commentaires sur une seule ligne
Nous commencerons les commentaires sur une seule ligne par «-».
--we can write single line comments like this.
Exécution du script Pig en mode batch
Lors de l'exécution des instructions Apache Pig en mode batch, suivez les étapes ci-dessous.
Étape 1
Écrivez toutes les instructions Pig Latin requises dans un seul fichier. Nous pouvons écrire toutes les instructions et commandes Pig Latin dans un seul fichier et l'enregistrer sous.pig fichier.
Étape 2
Exécutez le script Apache Pig. Vous pouvez exécuter le script Pig à partir du shell (Linux) comme indiqué ci-dessous.
Mode local | Mode MapReduce |
---|---|
$ cochon -x local Sample_script.pig | $ cochon -x mapreduce Sample_script.pig |
Vous pouvez également l'exécuter à partir du shell Grunt en utilisant la commande exec comme indiqué ci-dessous.
grunt> exec /sample_script.pig
Exécution d'un script Pig depuis HDFS
Nous pouvons également exécuter un script Pig qui réside dans le HDFS. Supposons qu'il existe un script Pig avec le nomSample_script.pig dans le répertoire HDFS nommé /pig_data/. Nous pouvons l'exécuter comme indiqué ci-dessous.
$ pig -x mapreduce hdfs://localhost:9000/pig_data/Sample_script.pig
Exemple
Supposons que nous ayons un fichier student_details.txt en HDFS avec le contenu suivant.
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
Nous avons également un exemple de script avec le nom sample_script.pig, dans le même répertoire HDFS. Ce fichier contient des instructions effectuant des opérations et des transformations sur lestudent relation, comme indiqué ci-dessous.
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 première instruction du script chargera les données dans le fichier nommé student_details.txt comme une relation nommée student.
La deuxième instruction du script organisera les tuples de la relation dans l'ordre décroissant, en fonction de l'âge, et le stockera comme student_order.
La troisième instruction du script stockera les 4 premiers tuples de student_order comme student_limit.
Enfin, la quatrième instruction videra le contenu de la relation student_limit.
Exécutons maintenant le sample_script.pig comme indiqué ci-dessous.
$./pig -x mapreduce hdfs://localhost:9000/pig_data/sample_script.pig
Apache Pig est exécuté et vous donne la sortie avec le contenu suivant.
(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)