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)