Apache Pig - Nhà điều hành Foreach
Các FOREACH toán tử được sử dụng để tạo các phép biến đổi dữ liệu cụ thể dựa trên dữ liệu cột.
Cú pháp
Dưới đây là cú pháp của FOREACH nhà điều hành.
grunt> Relation_name2 = FOREACH Relatin_name1 GENERATE (required data);
Thí dụ
Giả sử rằng chúng tôi có một tệp có tên student_details.txt trong thư mục HDFS /pig_data/ như hình bên dưới.
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
Và chúng tôi đã tải tệp này vào Pig với tên quan hệ student_details như hình bên dưới.
grunt> student_details = LOAD 'hdfs://localhost:9000/pig_data/student_details.txt' USING PigStorage(',')
as (id:int, firstname:chararray, lastname:chararray,age:int, phone:chararray, city:chararray);
Bây giờ chúng ta hãy lấy giá trị id, tuổi và thành phố của mỗi học sinh từ mối quan hệ student_details và lưu trữ nó vào một quan hệ khác có tên foreach_data sử dụng foreach như hình dưới đây.
grunt> foreach_data = FOREACH student_details GENERATE id,age,city;
xác minh
Xác minh mối quan hệ foreach_data sử dụng DUMP như hình dưới đây.
grunt> Dump foreach_data;
Đầu ra
Nó sẽ tạo ra kết quả sau, hiển thị nội dung của mối quan hệ foreach_data.
(1,21,Hyderabad)
(2,22,Kolkata)
(3,22,Delhi)
(4,21,Pune)
(5,23,Bhuwaneshwar)
(6,23,Chennai)
(7,24,trivendram)
(8,24,Chennai)