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_details1 và student_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_details1 và student_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)