Apache Pig - Toán tử phân tách

Các SPLIT toán tử được sử dụng để tách một quan hệ thành hai hoặc nhiều quan hệ.

Cú pháp

Dưới đây là cú pháp của SPLIT nhà điều hành.

grunt> SPLIT Relation1_name INTO Relation2_name IF (condition1), Relation2_name (condition2),

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.

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 chia mối quan hệ thành hai, một liệt kê các nhân viên dưới 23 tuổi và một liệt kê các nhân viên có độ tuổi từ 22 đến 25.

SPLIT student_details into student_details1 if age<23, student_details2 if (22<age and age>25);

xác minh

Xác minh các mối quan hệ student_details1student_details2 sử dụng DUMP như hình dưới đây.

grunt> Dump student_details1;  

grunt> Dump student_details2;

Đầu ra

Nó sẽ tạo ra kết quả sau, hiển thị nội dung của các quan hệ student_details1student_details2 tương ứng.

grunt> Dump student_details1; 
(1,Rajiv,Reddy,21,9848022337,Hyderabad) 
(2,siddarth,Battacharya,22,9848022338,Kolkata)
(3,Rajesh,Khanna,22,9848022339,Delhi) 
(4,Preethi,Agarwal,21,9848022330,Pune)
  
grunt> Dump student_details2; 
(5,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar) 
(6,Archana,Mishra,23,9848022335,Chennai) 
(7,Komal,Nayak,24,9848022334,trivendram) 
(8,Bharathi,Nambiayar,24,9848022333,Chennai)