Apache Pig: ejecución de scripts
Aquí, en este capítulo, veremos cómo ejecutar scripts de Apache Pig en modo por lotes.
Comentarios en Pig Script
Mientras escribimos un script en un archivo, podemos incluir comentarios en él como se muestra a continuación.
Comentarios de varias líneas
Comenzaremos los comentarios de varias líneas con '/ *' y los terminaremos con '* /'.
/* These are the multi-line comments
In the pig script */
Comentarios de una sola línea
Comenzaremos los comentarios de una sola línea con '-'.
--we can write single line comments like this.
Ejecución de Pig Script en modo por lotes
Mientras ejecuta las declaraciones de Apache Pig en modo por lotes, siga los pasos que se indican a continuación.
Paso 1
Escriba todas las declaraciones de Pig Latin necesarias en un solo archivo. Podemos escribir todas las instrucciones y comandos de Pig Latin en un solo archivo y guardarlo como.pig archivo.
Paso 2
Ejecute el script de Apache Pig. Puede ejecutar el script Pig desde el shell (Linux) como se muestra a continuación.
Modo local | Modo MapReduce |
---|---|
$ cerdo -x local Sample_script.pig | $ cerdo -x mapreduce Sample_script.pig |
También puede ejecutarlo desde el shell de Grunt utilizando el comando exec como se muestra a continuación.
grunt> exec /sample_script.pig
Ejecución de un script Pig desde HDFS
También podemos ejecutar un script de Pig que reside en el HDFS. Supongamos que hay un guión de Pig con el nombreSample_script.pig en el directorio HDFS llamado /pig_data/. Podemos ejecutarlo como se muestra a continuación.
$ pig -x mapreduce hdfs://localhost:9000/pig_data/Sample_script.pig
Ejemplo
Supongamos que tenemos un archivo student_details.txt en HDFS con el siguiente contenido.
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
También tenemos un script de muestra con el nombre sample_script.pig, en el mismo directorio HDFS. Este archivo contiene declaraciones que realizan operaciones y transformaciones en elstudent relación, como se muestra a continuación.
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 primera declaración del script cargará los datos en el archivo llamado student_details.txt como una relación llamada student.
La segunda declaración del guión organizará las tuplas de la relación en orden descendente, según la edad, y la almacenará como student_order.
La tercera declaración del script almacenará las primeras 4 tuplas de student_order como student_limit.
Finalmente, la cuarta declaración volcará el contenido de la relación. student_limit.
Ejecutemos ahora el sample_script.pig Como se muestra abajo.
$./pig -x mapreduce hdfs://localhost:9000/pig_data/sample_script.pig
Apache Pig se ejecuta y le da la salida con el siguiente contenido.
(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)