在排序后,是否有一种很好的方法可以对Apache Pig中的列进行排名?如果排名处理关系,那就更好了。
A = LOAD 'file.txt' as (score:int, name:chararray);
B = foreach A generate score, name order by score;
....
答案 0 :(得分:2)
尝试排名操作
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)
答案 1 :(得分:0)
答案 2 :(得分:0)
您应该使用两种解决方案的混合
B = ORDER A BY score DESC;
C = rank B;
让我们说你想要第二大
D = filter C by $0 == 2;
答案 3 :(得分:0)
您可以在PIG中使用Rank并且它也会处理绑定,但在应用排名时它只会使用一个reducer,因此性能会受到影响。