2012-12-27 42 views
6

Pig 'da bir tuple'ın MAX'u nasıl bulabilirim?Hadoop PIG Maksimum Tuple

A,20 
B,10 
C,40 
D,5 

data = LOAD 'myData.txt' USING PigStorage(',') AS key, value; 
all = GROUP data ALL; 
maxKey = FOREACH all GENERATE MAX(data.value); 
DUMP maxKey; 

Bu 40 döndürür, ancak ben tam anahtar-değer çifti istiyorum:

Benim kod şöyle görünür C,40. Herhangi bir fikir?

cevap

7

Bu Pig 0.10.0 çalışır:

data = LOAD 'myData.txt' USING PigStorage(',') AS (key, value: long); 
A = GROUP data ALL; 
B = FOREACH A GENERATE MAX(data.value) AS val; 
C = FILTER data BY value == (long)C.val; 
DUMP C; 
+0

domuz 0.13.0 için bu çalışır mı? Teşekkür ederim. – BlueFeet

+0

Muhtemelen evet :) – Frederic

+0

Sadece bir bilgi: 'C' verileri hesaplanırken, C.val – Zibi

3

bu deneyin:

data = LOAD 'myData.txt' USING PigStorage(',') AS (key: chararray, value: int); 

sorted = ORDER data BY value DESC; 

limited = LIMIT sorted 1; 

projected = FOREACH limited GENERATE key; 

DUMP projected;