Apache Pig - Running Scripts
Ở đây trong chương này, chúng ta sẽ xem cách chạy các tập lệnh Apache Pig ở chế độ hàng loạt.
Nhận xét trong Tập lệnh lợn
Trong khi viết kịch bản trong một tệp, chúng ta có thể bao gồm các chú thích trong đó như hình dưới đây.
Nhận xét nhiều dòng
Chúng tôi sẽ bắt đầu các nhận xét nhiều dòng bằng '/ *', kết thúc bằng '* /'.
/* These are the multi-line comments
In the pig script */
Nhận xét một dòng
Chúng tôi sẽ bắt đầu nhận xét một dòng bằng '-'.
--we can write single line comments like this.
Thực thi tập lệnh lợn ở chế độ hàng loạt
Trong khi thực hiện các câu lệnh Apache Pig ở chế độ hàng loạt, hãy làm theo các bước dưới đây.
Bước 1
Viết tất cả các câu lệnh Pig Latin cần thiết trong một tệp duy nhất. Chúng tôi có thể viết tất cả các câu lệnh và lệnh Pig Latin trong một tệp duy nhất và lưu nó dưới dạng.pig tập tin.
Bước 2
Thực thi tập lệnh Apache Pig. Bạn có thể thực thi tập lệnh Pig từ shell (Linux) như hình dưới đây.
Chế độ cục bộ | Chế độ MapReduce |
---|---|
$ pig -x địa phương Sample_script.pig | $ pig -x mapreduce Sample_script.pig |
Bạn có thể thực thi nó từ Grunt shell cũng như sử dụng lệnh execute như hình dưới đây.
grunt> exec /sample_script.pig
Thực thi tập lệnh lợn từ HDFS
Chúng tôi cũng có thể thực thi một tập lệnh Pig nằm trong HDFS. Giả sử có một tập lệnh Pig với tênSample_script.pig trong thư mục HDFS có tên /pig_data/. Chúng ta có thể thực hiện nó như hình dưới đây.
$ pig -x mapreduce hdfs://localhost:9000/pig_data/Sample_script.pig
Thí dụ
Giả sử chúng ta có một tệp student_details.txt trong HDFS với nội dung sau.
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
Chúng tôi cũng có một tập lệnh mẫu với tên sample_script.pig, trong cùng một thư mục HDFS. Tệp này chứa các câu lệnh thực hiện các phép toán và phép biến đổi trênstudent quan hệ, như được hiển thị bên dưới.
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;
Câu lệnh đầu tiên của tập lệnh sẽ tải dữ liệu trong tệp có tên student_details.txt như một mối quan hệ có tên student.
Câu lệnh thứ hai của tập lệnh sẽ sắp xếp các bộ giá trị của mối quan hệ theo thứ tự giảm dần, dựa trên độ tuổi và lưu trữ nó dưới dạng student_order.
Câu lệnh thứ ba của tập lệnh sẽ lưu trữ 4 bộ đầu tiên của student_order như student_limit.
Cuối cùng câu lệnh thứ tư sẽ kết xuất nội dung của mối quan hệ student_limit.
Bây giờ hãy để chúng tôi thực hiện sample_script.pig như hình bên dưới.
$./pig -x mapreduce hdfs://localhost:9000/pig_data/sample_script.pig
Apache Pig được thực thi và cung cấp cho bạn kết quả với nội dung sau.
(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)