【发布时间】:2011-10-03 15:44:50
【问题描述】:
我希望在遍历记录时在我的 foreach 构造中生成/附加某种唯一标识符/line_number/counter。有没有办法在不编写 UDF 的情况下做到这一点?
B = foreach A 生成 a_unique_id、field1、...等
如何实现“a_unique_id”?
谢谢!
【问题讨论】:
标签: apache-pig
我希望在遍历记录时在我的 foreach 构造中生成/附加某种唯一标识符/line_number/counter。有没有办法在不编写 UDF 的情况下做到这一点?
B = foreach A 生成 a_unique_id、field1、...等
如何实现“a_unique_id”?
谢谢!
【问题讨论】:
标签: apache-pig
如果您使用的是 pig 0.11 或更高版本,那么 RANK 运算符正是您正在寻找的。例如
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)
【讨论】:
在主要的 Pig 发行版或 piggybank 中没有内置的 UUID 函数。不幸的是,我认为您唯一的选择是编写 UDF。
有一个 standard way of building UUIDs 和 Java 代码,您可以利用它来构建您的 UDF。
你不想写 UDF 有什么特别的原因吗?
【讨论】: