En este capÃtulo, veremos cómo ejecutar scripts de Apache Pig en modo por lotes.
Al escribir un script en un archivo, podemos incluir comentarios en él como se muestra a continuación.
Comenzaremos los comentarios de varias lÃneas con ‘/ *’ y los terminaremos con ‘* /’.
/* These are the multi-line comments In the pig script */
Comenzaremos los comentarios de una lÃnea con «-«.
--we can write single line comments like this.
Mientras ejecuta declaraciones de Apache Pig en modo por lotes, siga los pasos a continuación.
Escriba todas las declaraciones de Pig Latin necesarias en un archivo. Podemos escribir todas las instrucciones y comandos de Pig Latin en un archivo y guardarlo como .Pig expediente.
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 |
---|---|
$ Pig -x local Sample_script.pig | $ Pig -x mapreduce Sample_script.pig |
También puede ejecutarlo desde el shell Grunt utilizando el comando exec como se muestra a continuación.
grunt> exec /sample_script.pig
También podemos ejecutar el script Pig que está en HDFS. Digamos que hay un script de Pig llamado Sample_script.pig en el directorio HDFS llamado / pig_data /… Podemos lograr esto como se muestra a continuación.
$ pig -x mapreduce hdfs://localhost:9000/pig_data/Sample_script.pig
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 llamado sample_script.pigen el mismo directorio HDFS. Este archivo contiene declaraciones que realizan operaciones y transformaciones en aprendiz 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 un archivo llamado student_details.txt como una relación llamada aprendiz…
La segunda instrucción de script ordenará las tuplas de la relación en orden descendente según la edad y las almacenará como orden_estudiante…
La tercera declaración de script mantendrá las primeras 4 tuplas orden_estudiante como student_limit…
Finalmente, la cuarta declaración volcará el contenido de la relación student_limit…
Hagámoslo ahora sample_script.pig Como se muestra abajo.
$./pig -x mapreduce hdfs://localhost:9000/pig_data/sample_script.pig
Apache Pig se inicia y produce una 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)
🚫