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