Cerdo Apache - ARRIBA ()
los TOP() función de Pig Latin se utiliza para obtener la parte superior Ntuplas de una bolsa. A esta función, como entradas, tenemos que pasar una relación, el número de tuplas que queremos y el nombre de la columna cuyos valores se están comparando. Esta función devolverá una bolsa que contiene las columnas requeridas.
Sintaxis
A continuación se muestra la sintaxis de la función TOP().
grunt> TOP(topN,column,relation)
Ejemplo
Supongamos que tenemos un archivo llamado employee_details.txt en el directorio HDFS /pig_data/, con el siguiente contenido.
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
007,Robert,22,newyork
008,Syam,23,Kolkata
009,Mary,25,Tokyo
010,Saran,25,London
011,Stacy,25,Bhuwaneshwar
012,Kelly,22,Chennai
Hemos cargado este archivo en Pig con el nombre de la relación. emp_data Como se muestra abajo.
grunt> emp_data = LOAD 'hdfs://localhost:9000/pig_data/ employee_details.txt' USING PigStorage(',')
as (id:int, name:chararray, age:int, city:chararray);
Agrupar la relación emp_data por edad, y guárdelo en la relación emp_group.
grunt> emp_group = Group emp_data BY age;
Verifica la relación emp_group usando el vertedero operator Como se muestra abajo.
grunt> Dump emp_group;
(22,{(12,Kelly,22,Chennai),(7,Robert,22,newyork),(6,Maggy,22,Chennai),(1,Robin, 22,newyork)})
(23,{(8,Syam,23,Kolkata),(5,David,23,Bhuwaneshwar),(3,Maya,23,Tokyo),(2,BOB,23, Kolkata)})
(25,{(11,Stacy,25,Bhuwaneshwar),(10,Saran,25,London),(9,Mary,25,Tokyo),(4,Sara, 25,London)})
Ahora, puede obtener los dos primeros registros de cada grupo organizados en orden ascendente (based on id) Como se muestra abajo.
grunt> data_top = FOREACH emp_group {
top = TOP(2, 0, emp_data);
GENERATE top;
}
En este ejemplo, estamos recuperando las 2 tuplas superiores de un grupo que tiene una identificación mayor. Dado que estamos recuperando las 2 tuplas superiores basándonos en elid, estamos pasando el índice de la identificación del nombre de la columna como segundo parámetro de la función TOP ().
Verificación
Puede verificar el contenido del data_top relación usando el Dump operador como se muestra a continuación.
grunt> Dump data_top;
({(7,Robert,22,newyork),(12,Kelly,22,Chennai)})
({(5,David,23,Bhuwaneshwar),(8,Syam,23,Kolkata)})
({(10,Saran,25,London),(11,Stacy,25,Bhuwaneshwar)})