генерация идентификатора / счетчика для foreach на латинском языке - PullRequest
6 голосов
/ 03 октября 2011

Я хочу, чтобы какой-то уникальный идентификатор / номер_строки / счетчик был сгенерирован / добавлен в мою конструкцию foreach во время итерации по записям. Есть ли способ сделать это без написания UDF?

B = foreach A генерировать a_unique_id, field1, ... и т. Д.

Как мне реализовать этот 'a_unique_id'?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 08 октября 2013

Если вы используете pig 0.11 или более поздней версии, то оператор RANK - это именно то, что вы ищете.EG

DUMP A;
(foo,19)
(foo,19)
(foo,7)
(bar,90)
(etc.,0)

B = RANK A ;

DUMP B ;
(1,foo,19)
(2,foo,19)
(3,foo,7)
(4,bar,90)
(5,etc.,0)
1 голос
/ 03 октября 2011

Нет встроенной функции UUID в главном распределении свиней или копилке.К сожалению, я думаю, что единственным вариантом будет написание UDF.

Существует стандартный способ создания UUID , и есть Java-код, который вы можете использовать для сборки дляваш UDF.

Есть ли конкретная причина, по которой вы не хотите писать UDF?

...