猪按命令分组不起作用
Posted
技术标签:
【中文标题】猪按命令分组不起作用【英文标题】:pig group by command don´t work 【发布时间】:2015-02-10 09:44:49 【问题描述】:我在 3 个节点上安装了 Cassandra 2.0.7 和 hadoop 2.3.0,在 3 个节点之一上安装了 pig 0.13.0,我在 cassandra 中有如下表:
CREATE TABLE sampletb (
a text,
b text,
c text,
d text,
e int,
PRIMARY KEY (a, b, c, d))
我在 grunt 中运行 pig 脚本,如下所示:
rows = LOAD 'cql://db/ sampletb USING CqlStorage();
grouprows= group rows by ($0,$1);
当我运行 group 时,它给出了以下错误:
2015-02-10 08:57:39,196 [main] 错误 org.apache.pig.tools.grunt.Grunt - 错误 2998:未处理的内部错误。 org.antlr.runtime.tree.BaseTree.insertChild(ILjava/lang/Object;)V 日志文件中的详细信息:/home/hadoopcluster/pig_1423545778153.log 日志文件内容为:
猪栈跟踪
错误 2998:未处理的内部错误。 org.antlr.runtime.tree.BaseTree.insertChild(ILjava/lang/Object;)V
java.lang.NoSuchMethodError: >org.antlr.runtime.tree.BaseTree.insertChild(ILjava/lang/Object;)V 在 org.apache.pig.parser.QueryParser.paren_expr(QueryParser.java:17532) 在 org.apache.pig.parser.QueryParser.cast_expr(QueryParser.java:17005) 在 org.apache.pig.parser.QueryParser.multi_expr(QueryParser.java:15679) 在 org.apache.pig.parser.QueryParser.expr(QueryParser.java:15568) 在 org.apache.pig.parser.QueryParser.real_arg(QueryParser.java:14634) 在 org.apache.pig.parser.QueryParser.join_group_by_clause(QueryParser.java:13663) 在 org.apache.pig.parser.QueryParser.group_item(QueryParser.java:8889) 在 org.apache.pig.parser.QueryParser.group_item_list(QueryParser.java:8721) 在 org.apache.pig.parser.QueryParser.group_clause(QueryParser.java:8611) 在 org.apache.pig.parser.QueryParser.op_clause(QueryParser.java:7047) 在 org.apache.pig.parser.QueryParser.general_statement(QueryParser.java:2314) 在 org.apache.pig.parser.QueryParser.statement(QueryParser.java:1579) 在 org.apache.pig.parser.QueryParser.query(QueryParser.java:395) 在 org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:236) 在 org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:179) 在 org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1684) 在 org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1657) 在 org.apache.pig.PigServer.registerQuery(PigServer.java:600) 在 org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:1069) 在 org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:501) 在 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:228) 在 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:203) 在 org.apache.pig.tools.grunt.Grunt.run(Grunt.java:66) 在 org.apache.pig.Main.run(Main.java:542) 在 org.apache.pig.Main.main(Main.java:156) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:212)
我在网上搜索了很多,但没有找到任何有用的东西,请紧急帮助
【问题讨论】:
【参考方案1】:这看起来像是类冲突。确保使用的 antlr jar 文件的版本与 pig 所需的版本匹配。
【讨论】:
以上是关于猪按命令分组不起作用的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 与分组和大小写。分组方式不起作用