假设我有一个有两列custype和amount的表。我想添加第三列ntile,然后将其分组并使用以获得平均值,如下所示:
CUSTTYPE | AMOUNT | NTILE
----------+---------+----------
RETAIL | 78.00 | 1
RETAIL | 234.00 | 1
RETAIL | 249.00 | 1
RETAIL | 278.00 | 2
RETAIL | 392.00 | 2
RETAIL | 498.00 | 2
RETAIL | 500.00 | 3
RETAIL | 738.00 | 3
RETAIL | 1250.00 | 3
RETAIL | 2029.00 | 4
RETAIL | 2393.00 | 4
RETAIL | 3933.00 | 4
基本上,我试图取每n项的平均值(这里,n=3):
CUSTTYPE | AMOUNT | NTILE
----------+---------+----------
RETAIL | 187.00 | 1
RETAIL | 389.33 | 2
RETAIL | 829.33 | 3
RETAIL | 2785.0 | 4
从这里的pig参考资料来看,这似乎可以通过 Over()
但我找不到一个例子来说明如何做到这一点。思想?
1条答案
按热度按时间tkclm6bt1#
您可以使用
RANK
操作员:http://pig.apache.org/docs/r0.14.0/basic.html#rank
这样地:
然后将每个等级除以3: