Apache Pig - Toán tử riêng biệt

Các DISTINCT toán tử được sử dụng để loại bỏ các bộ giá trị thừa (trùng lặp) khỏi một quan hệ.

Cú pháp

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

grunt> Relation_name2 = DISTINCT Relatin_name1;

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,9848022337,Hyderabad
002,siddarth,Battacharya,9848022338,Kolkata 
002,siddarth,Battacharya,9848022338,Kolkata 
003,Rajesh,Khanna,9848022339,Delhi 
003,Rajesh,Khanna,9848022339,Delhi 
004,Preethi,Agarwal,9848022330,Pune 
005,Trupthi,Mohanthy,9848022336,Bhuwaneshwar
006,Archana,Mishra,9848022335,Chennai 
006,Archana,Mishra,9848022335,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, phone:chararray, city:chararray);

Bây giờ chúng ta hãy xóa các bộ giá trị thừa (trùng lặp) khỏi quan hệ có tên student_details sử dụng DISTINCT toán tử và lưu trữ nó dưới dạng một quan hệ khác có tên distinct_data như hình bên dưới.

grunt> distinct_data = DISTINCT student_details;

xác minh

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

grunt> Dump distinct_data;

Đầu ra

Nó sẽ tạo ra kết quả sau, hiển thị nội dung của mối quan hệ distinct_data như sau.

(1,Rajiv,Reddy,9848022337,Hyderabad)
(2,siddarth,Battacharya,9848022338,Kolkata) 
(3,Rajesh,Khanna,9848022339,Delhi) 
(4,Preethi,Agarwal,9848022330,Pune) 
(5,Trupthi,Mohanthy,9848022336,Bhuwaneshwar)
(6,Archana,Mishra,9848022335,Chennai)