Apache Pig - Executando Scripts

Aqui neste capítulo, veremos como executar scripts do Apache Pig no modo em lote.

Comentários no Pig Script

Ao escrever um script em um arquivo, podemos incluir comentários como mostrado abaixo.

Comentários multilinhas

Começaremos os comentários de várias linhas com '/ *' e terminá-los com '* /'.

/* These are the multi-line comments 
  In the pig script */

Comentários de linha única

Começaremos os comentários de linha única com '-'.

--we can write single line comments like this.

Executando Pig Script no modo Batch

Ao executar as instruções do Apache Pig no modo em lote, siga as etapas fornecidas abaixo.

Passo 1

Grave todas as instruções do Pig Latin necessárias em um único arquivo. Podemos escrever todas as instruções e comandos do Pig Latin em um único arquivo e salvá-lo como.pig Arquivo.

Passo 2

Execute o script do Apache Pig. Você pode executar o script Pig a partir do shell (Linux), conforme mostrado abaixo.

Modo local Modo MapReduce
$ pig -x local Sample_script.pig $ pig -x mapreduce Sample_script.pig

Você também pode executá-lo a partir do shell Grunt usando o comando exec conforme mostrado abaixo.

grunt> exec /sample_script.pig

Executando um Pig Script do HDFS

Também podemos executar um script Pig que reside no HDFS. Suponha que haja um script Pig com o nomeSample_script.pig no diretório HDFS chamado /pig_data/. Podemos executá-lo conforme mostrado abaixo.

$ pig -x mapreduce hdfs://localhost:9000/pig_data/Sample_script.pig

Exemplo

Suponha que temos um arquivo student_details.txt em HDFS com o seguinte conteúdo.

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

Também temos um script de exemplo com o nome sample_script.pig, no mesmo diretório HDFS. Este arquivo contém instruções que executam operações e transformações nostudent relação, conforme mostrado abaixo.

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;
  • A primeira instrução do script carregará os dados no arquivo chamado student_details.txt como uma relação chamada student.

  • A segunda declaração do script irá organizar as tuplas da relação em ordem decrescente, com base na idade, e armazená-la como student_order.

  • A terceira instrução do script irá armazenar as primeiras 4 tuplas de student_order Como student_limit.

  • Finalmente, a quarta declaração irá despejar o conteúdo da relação student_limit.

Vamos agora executar o sample_script.pig como mostrado abaixo.

$./pig -x mapreduce hdfs://localhost:9000/pig_data/sample_script.pig

O Apache Pig é executado e fornece a saída com o seguinte conteúdo.

(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)