【问题标题】:Rank within Groups in Pig 11在 Pig 11 中的组内排名
【发布时间】:2013-04-08 20:42:14
【问题描述】:

猪的问题,

我的数据设置如下。

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 ?

【问题讨论】:

    标签: jython apache-pig


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我会给出一些指示。

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

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

      【讨论】:

        【解决方案3】:

        好的,这成功了

        def num_bag(input):
        output = []
        for rank, item in num(input):
            output.append(tuple([rank] + list(item)))
        return output
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-10-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-27
          相关资源
          最近更新 更多