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)