1

猪的问题,

我通过以下方式设置数据。

Function    Group   Home    Name
Rent    MX  1   John
Rent    MX  1   Jake
Rent    MX  1   Pat
Rent    DG  2   Jason
Rent    DG  6   Patrick
Rent    DG  6   Smith
Rent    DG  6   Joe

我想做的是按功能、组和家庭分组,然后在该组中排名。

Function    Group   Home    Name    Rank
Rent    MX  1   John    1
Rent    MX  1   Jake    2
Rent    MX  1   Pat 3
Rent    DG  6   Patrick 1
Rent    DG  6   Smith   2
Rent    DG  6   Joe 3

Pig 中的 RANK 功能不允许我在组内排名。有什么建议吗?Jython UDF ?

4

3 回答 3

1

查看 DataFu 中的 Enumerate UDF,它会为您执行此操作。http://datafu.incubator.apache.org/docs/datafu/1.1.0/datafu/pig/bags/Enumerate.html

于 2013-04-12T06:36:39.093 回答
0

我会给出一些指示。

在 Cascading API 中,我使用了缓冲区,它允许我们迭代组值。

我读到级联也有一个供Jython开发人员使用的 api,你可以探索一下。

于 2013-04-09T06:50:35.173 回答
0

好的,这有效

def num_bag(input):
output = []
for rank, item in num(input):
    output.append(tuple([rank] + list(item)))
return output
于 2013-04-09T12:06:52.300 回答