2012-12-27 12 views
6

PigでタプルのMAXを見つけるにはどうすればよいですか?Hadoop PIGタプルの最大数

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; 

これは40を返しますが、私は完全なキーと値のペアをしたい:C,40

私のコードは次のようになります。何か案は?

答えて

7

これは豚0.10.0で動作します:

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

は豚-0.13.0のためにこの仕事をしていますか?ありがとうございました。 – BlueFeet

+0

おそらくはい: – Frederic

+0

ちょうどヘッドアップ:計算 'C'データはC.valの代わりにB.valでフィルタリングする必要があります。 – Zibi

3

はこれを試してみてください:

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; 
関連する問題