рейтинг в Apache Pig - PullRequest
       6

рейтинг в Apache Pig

3 голосов
/ 31 марта 2012

Есть ли хороший способ ранжировать столбец в Apache Pig после того, как вы его отсортировали?Еще лучше было бы, если бы в рейтинге обрабатывались связи.

A = LOAD 'file.txt' as (score:int, name:chararray);
B = foreach A generate score, name order by score;
....

Ответы [ 4 ]

2 голосов
/ 26 февраля 2015

Попробуйте операцию ранга

A = load 'data' AS (f1:chararray,f2:int,f3:chararray);

DUMP A;
(David,1,N)
(Tete,2,N)
B = rank A;

dump B;
(1,David,1,N)
(2,Tete,2,N)

Ссылка https://blogs.apache.org/pig/entry/apache_pig_it_goes_to

0 голосов
/ 05 августа 2015

Вы можете использовать Rank в PIG, и он будет обрабатывать также связи, но при применении ранга он будет использовать только один редуктор, поэтому производительность будет влиять.

0 голосов
/ 04 мая 2015

Вы должны использовать смесь обоих растворов

B = ORDER A BY score DESC;
C = rank B;

Допустим, вы хотите второй по величине

D = filter C by $0 == 2;
0 голосов
/ 31 марта 2012

Я думаю, вы могли бы использовать оператор "ORDER BY". А вот ссылка

B = ORDER A BY score DESC;

или

B = ORDER A BY score ASC;
...