@кабад
На первый взгляд кажется, что оператор RANK будет работать, но вы не гарантируете, что у вас будет возрастающий идентификатор строки без каких-либо ограничений на ваши данные.
Проблема возникает из-за того, что любые равные строки, предоставленные оператору ранжирования, будут иметь один и тот же ранг. Если вы можете соблюсти гарантию того, что никакие две строки не имеют одинаковых полей, используемых для ранжирования, тогда этот подход может сработать, но я думаю, что я бы поместил его в подход «квадратный колышек с круглым отверстием».
См. этот пример из [документов] http://pig.apache.org/docs/r0.11.0/basic.html#rank (ранги 2, 6, 10):
C = rank A by f1 DESC, f2 ASC;
dump C;
(1,Tete,2,N)
(2,Ranjit,3,M)
(2,Ranjit,3,P)
(4,Michael,8,T)
(5,Jose,10,V)
(6,Jillian,8,Q)
(6,Jillian,8,Q)
(8,JaePak,7,Q)
(9,David,1,N)
(10,David,4,Q)
(10,David,4,Q)
person
Matt Davies
schedule
06.12.2013