Apache Pig - Запуск скриптов

В этой главе мы увидим, как запускать скрипты Apache Pig в пакетном режиме.

Комментарии в скрипте Pig

При написании сценария в файле мы можем включать в него комментарии, как показано ниже.

Многострочные комментарии

Мы будем начинать многострочные комментарии с '/ *', заканчивая их '* /'.

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

Однострочные комментарии

Мы начнем однострочные комментарии с "-".

--we can write single line comments like this.

Выполнение скрипта Pig в пакетном режиме

Выполняя операторы Apache Pig в пакетном режиме, выполните действия, указанные ниже.

Шаг 1

Запишите все необходимые операторы Pig Latin в один файл. Мы можем записать все операторы и команды Pig Latin в один файл и сохранить его как.pig файл.

Шаг 2

Выполните сценарий Apache Pig. Вы можете выполнить сценарий Pig из оболочки (Linux), как показано ниже.

Локальный режим Режим MapReduce
$ pig -x местный Sample_script.pig $ pig -x mapreduce Sample_script.pig

Вы также можете выполнить его из оболочки Grunt, используя команду exec, как показано ниже.

grunt> exec /sample_script.pig

Выполнение скрипта Pig из HDFS

Мы также можем выполнить сценарий Pig, который находится в HDFS. Предположим, есть скрипт Pig с названиемSample_script.pig в каталоге HDFS с именем /pig_data/. Мы можем выполнить это, как показано ниже.

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

пример

Предположим, у нас есть файл student_details.txt в HDFS со следующим содержимым.

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

У нас также есть образец скрипта с названием sample_script.pigв том же каталоге HDFS. Этот файл содержит операторы, выполняющие операции и преобразования наstudent отношение, как показано ниже.

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;
  • Первый оператор скрипта загрузит данные в файл с именем student_details.txt как отношение, названное student.

  • Второй оператор сценария упорядочит кортежи отношения в порядке убывания в зависимости от возраста и сохранит их как student_order.

  • Третья инструкция скрипта сохранит первые 4 кортежа student_order в виде student_limit.

  • Наконец, четвертый оператор сбросит содержимое отношения student_limit.

Давайте теперь выполним sample_script.pig как показано ниже.

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

Apache Pig запускается и выдает результат со следующим содержимым.

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