Hive 如何从grunt shell运行pig拉丁语宏?
我有一个宏,它在过滤数据后统计记录的数量。但当我在grunt shell中运行宏时,会发生以下错误:Hive 如何从grunt shell运行pig拉丁语宏?,hive,apache-pig,Hive,Apache Pig,我有一个宏,它在过滤数据后统计记录的数量。但当我在grunt shell中运行宏时,会发生以下错误: grunt> DEFINE count_by_group(X) RETURNS Y { A = GROUP $X ALL; $Y = FOR EACH A GENERATE COUNT($X); }; 出现的错误是: ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2999: Unexpec
grunt> DEFINE count_by_group(X) RETURNS Y {
A = GROUP $X ALL;
$Y = FOR EACH A GENERATE COUNT($X);
};
出现的错误是:
ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2999:
Unexpected internal error. Can not create a Path from a null string
清管器日志上的完整堆栈跟踪:
================================================================================
Pig Stack Trace
---------------
ERROR 2999: Unexpected internal error. Can not create a Path from a null string
java.lang.IllegalArgumentException: Can not create a Path from a null string
at org.apache.hadoop.fs.Path.checkPathArg(Path.java:78)
at org.apache.hadoop.fs.Path.<init>(Path.java:90)
at org.apache.pig.impl.io.FileLocalizer.fetchFilesInternal(FileLocalizer.java:770)
at org.apache.pig.impl.io.FileLocalizer.fetchFile(FileLocalizer.java:737)
at org.apache.pig.parser.QueryParserDriver.getMacroFile(QueryParserDriver.java:350)
at org.apache.pig.parser.QueryParserDriver.makeMacroDef(QueryParserDriver.java:406)
at org.apache.pig.parser.QueryParserDriver.expandMacro(QueryParserDriver.java:268)
at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:169)
at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1565)
at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1538)
at org.apache.pig.PigServer.registerQuery(PigServer.java:540)
at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:970)
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165)
at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
at org.apache.pig.Main.run(Main.java:490)
at org.apache.pig.Main.main(Main.java:111)
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:616)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
================================================================================
================================================================================
清管器堆迹
---------------
错误2999:意外的内部错误。无法从空字符串创建路径
java.lang.IllegalArgumentException:无法从空字符串创建路径
位于org.apache.hadoop.fs.Path.checkPathArg(Path.java:78)
在org.apache.hadoop.fs.Path.(Path.java:90)
位于org.apache.pig.impl.io.FileLocalizer.fetchFilesInternal(FileLocalizer.java:770)
位于org.apache.pig.impl.io.FileLocalizer.fetchFile(FileLocalizer.java:737)
位于org.apache.pig.parser.QueryParserDriver.getMacroFile(QueryParserDriver.java:350)
位于org.apache.pig.parser.QueryParserDriver.makeMacroDef(QueryParserDriver.java:406)
位于org.apache.pig.parser.QueryParserDriver.expandMacro(QueryParserDriver.java:268)
位于org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:169)
位于org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1565)
位于org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1538)
位于org.apache.pig.PigServer.registerQuery(PigServer.java:540)
位于org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:970)
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386)
位于org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189)
位于org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165)
位于org.apache.pig.tools.grunt.grunt.run(grunt.java:69)
位于org.apache.pig.Main.run(Main.java:490)
位于org.apache.pig.Main.Main(Main.java:111)
在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:616)
位于org.apache.hadoop.util.RunJar.main(RunJar.java:156)
================================================================================
请帮忙。提前谢谢
问候,
钱丹你不能 宏在Pig拉丁代码中通过将其分配给关系来调用。无法在命令行中传递宏