在猪拉丁语中为foreach生成一个id / counter

时间:2011-10-03 15:44:50

标签: apache-pig

我希望在我的foreach构造中生成/附加某种唯一标识符/ line_number / counter,同时遍历记录。有没有办法在不编写UDF的情况下实现这一目标?

B = foreach A生成a_unique_id,field1,...等

如何实现'a_unique_id'?

谢谢!

2 个答案:

答案 0 :(得分:4)

如果您使用猪0.11或更高版本,那么RANK运算符就是您正在寻找的。 E.G。

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 :(得分:1)

主Pig分配或piggybank中没有内置的UUID功能。不幸的是,我认为你唯一的选择就是编写UDF。

有一个standard way of building UUIDs,你可以利用Java代码为你的UDF构建。

您是否有特殊原因想要编写UDF?