Учебники

Apache Pig — Бегущие скрипты

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

Комментарии в Pig Script

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

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

Мы начинаем многострочные комментарии с ‘/ *’, заканчиваем их с ‘* /’.

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

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

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

--we can write single line comments like this.

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

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

Шаг 1

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

Шаг 2

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

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

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

grunt> exec /sample_script.pig

Выполнение сценария Pig из HDFS

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

$ 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 = 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 .

Первая инструкция скрипта загрузит данные в файл 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 исполняется и выдает результат со следующим содержимым.