Hadoop 如何重命名包中的字段
如何重命名包中的字段。我已经找到了投影字段的方法,但无法重命名它们 例如:Hadoop 如何重命名包中的字段,hadoop,apache-pig,Hadoop,Apache Pig,如何重命名包中的字段。我已经找到了投影字段的方法,但无法重命名它们 例如: renamed = FOREACH named GENERATE field0, elements.( field1, field2 ); 如果我尝试以下操作,则会出现错误: renamed = FOREACH named GENERATE field0, elements.( field1 AS renamed1, field2
renamed = FOREACH named GENERATE
field0,
elements.(
field1,
field2
);
如果我尝试以下操作,则会出现错误:
renamed = FOREACH named GENERATE
field0,
elements.(
field1 AS renamed1,
field2
);
错误消息如下所示
2014-06-10 08:34:14,701 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 233, column 16> mismatched input 'AS' expecting RIGHT_PAREN
2014-06-10 08:34:14,702 [main] WARN org.apache.pig.tools.grunt.Grunt - There is no log file to write to.
2014-06-10 08:34:14,702 [main] ERROR org.apache.pig.tools.grunt.Grunt - Failed to parse: <line 233, column 16> mismatched input 'AS' expecting RIGHT_PAREN
at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:241)
at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:179)
at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1648)
at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1621)
at org.apache.pig.PigServer.registerQuery(PigServer.java:575)
at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:1093)
at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:501)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:198)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:173)
at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
at org.apache.pig.Main.run(Main.java:541)
at org.apache.pig.Main.main(Main.java:156)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
2014-06-10 08:34:14701[main]错误org.apache.pig.tools.grunt.grunt-错误1200:输入不匹配“AS”应为正确参数
2014-06-10 08:34:14702[main]WARN org.apache.pig.tools.grunt.grunt-没有要写入的日志文件。
2014-06-10 08:34:14702[main]错误org.apache.pig.tools.grunt.grunt-未能分析:不匹配的输入“AS”应为正确参数
位于org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:241)
位于org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:179)
位于org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1648)
位于org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1621)
位于org.apache.pig.PigServer.registerQuery(PigServer.java:575)
位于org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:1093)
位于org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:501)
位于org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:198)
位于org.apache.pig.tools.grunt.GruntParser.parsetoponerror(GruntParser.java:173)
位于org.apache.pig.tools.grunt.grunt.run(grunt.java:69)
位于org.apache.pig.Main.run(Main.java:541)
位于org.apache.pig.Main.Main(Main.java:156)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在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)
您需要将AS
子句放在您对行李的定义之后。请尝试以下方法:
renamed = FOREACH named GENERATE
field0,
elements.(
field1
field2
) AS bagName:{(renamed1, renamed2)};