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)})