包里面的RANK? [英] RANK inside the bag?

查看:40
本文介绍了包里面的RANK?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有 set_of_values :

Let's say I have set_of_values :

a, k
a, l
a, m
b, x
b, y
b, z

如果我使用

a = RANK set_of_values;

我明白了:

1, a, k
2, a, l
3, a, m
4, b, x
5, b, y
6, b, z

我想实现的是RANK,但是在组内.
第一:

What I would like to achieve is RANK, but inside the group.
First :

a = group set_of_values by first_value;

(a,{(a,k),(a,l),(a,m)})
(b,{(b,x),(b,y),(b,z)})

我现在应该怎么做才能得到:

And what should I do now to get:

(a,{(1,a,k),(2,a,l),(3,a,m)})
(b,{(1,b,x),(2,b,y),(3,b,z)})

EDIT(在 foreach 中添加 RANK)

EDIT (added RANK inside foreach)

b = foreach a { c = RANK $1; generate c; }

我明白了:

2014-03-05 09:55:05,601 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 5, column 20>  Syntax error, unexpected symbol at or near 'RANK'
Details at logfile: /export/home/pig/pig_1394009645035.log

日志文件:

ERROR 1200: <line 5, column 20>  Syntax error, unexpected symbol at or near 'RANK'

Failed to parse: <line 5, column 20>  Syntax error, unexpected symbol at or near 'RANK'
        at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:235)
        at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:177)
        at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1571)
        at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1544)
        at org.apache.pig.PigServer.registerQuery(PigServer.java:516)
        at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:988)
        at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:412)
        at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:194)
        at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:170)
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
        at org.apache.pig.Main.run(Main.java:538)
        at org.apache.pig.Main.main(Main.java:157)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:160)

推荐答案

这可能来不及回复,但我发现有人仅在堆栈溢出时发布了此内容:Apache Pig 排名函数的使用

This might be too late for a reply, but I found someone posted this on stack overflow only: Usage of Apache Pig rank function

P.S:他正在使用 DataFu UDF: Enumerate ,它对我有用.

P.S: He is using DataFu UDF: Enumerate , and it worked for me.

这篇关于包里面的RANK?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆