EN COGROUP El operador trabaja más o menos de la misma manera que el operador GRUPO. La única diferencia entre los dos operadores es que Grupo El operador generalmente se usa con una relación, mientras que el operador cogrupo El operador se usa en operadores que involucran dos o más relaciones.
Supongamos que tenemos dos archivos, a saber student_details.txt y employee_details.txt en el directorio HDFS / pig_data / Como se muestra abajo.
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
employee_details.txt
001,Robin,22,newyork 002,BOB,23,Kolkata 003,Maya,23,Tokyo 004,Sara,25,London 005,David,23,Bhuwaneshwar 006,Maggy,22,Chennai
Y cargamos estos archivos en Pig con los nombres de las relaciones. Student_details y detalles sobre empleados respectivamente, como se muestra a continuación.
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); grunt> employee_details = LOAD 'hdfs://localhost:9000/pig_data/employee_details.txt' USING PigStorage(',') as (id:int, name:chararray, age:int, city:chararray);
Ahora agrupemos los registros / tuplas de relaciones Student_details y detalles sobre empleados con una edad clave como se muestra a continuación.
grunt> cogroup_data = COGROUP student_details by age, employee_details by age;
Verifica la conexión cogroup_data usando DUMP operador como se muestra a continuación.
grunt> Dump cogroup_data;
Producirá el siguiente resultado mostrando el contenido de la relación denominada cogroup_data Como se muestra abajo.
(21,{(4,Preethi,Agarwal,21,9848022330,Pune), (1,Rajiv,Reddy,21,9848022337,Hyderabad)}, { }) (22,{ (3,Rajesh,Khanna,22,9848022339,Delhi), (2,siddarth,Battacharya,22,9848022338,Kolkata) }, { (6,Maggy,22,Chennai),(1,Robin,22,newyork) }) (23,{(6,Archana,Mishra,23,9848022335,Chennai),(5,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar)}, {(5,David,23,Bhuwaneshwar),(3,Maya,23,Tokyo),(2,BOB,23,Kolkata)}) (24,{(8,Bharathi,Nambiayar,24,9848022333,Chennai),(7,Komal,Nayak,24,9848022334, trivendram)}, { }) (25,{ }, {(4,Sara,25,London)})
EN cogrupo El operador agrupa las tuplas de cada relación según la edad, donde cada grupo muestra un valor de edad especÃfico.
Por ejemplo, si consideramos la primera tupla del resultado, se agrupa por edad de 21 años. Y contiene dos bolsas:
la primera bolsa contiene todas las tuplas de la primera relación (Student_details en este caso) a la edad de 21 años, y
el segundo paquete contiene todas las tuplas de la segunda relación (detalles sobre empleados en este caso) a los 21 años.
Si la relación no tiene tuplas con un valor de edad de 21, devuelve una bolsa vacÃa.
🚫