2012-09-10 30 views
4

我有一個宏來篩選數據後對記錄數進行計數。但是,當我在繁重的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: 
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) 
================================================================================ 

請幫助。提前致謝。

問候,

CHANDAN

回答

2

通過將Pig分配給關係來調用Pig拉丁語代碼中的宏。宏不能在命令行中傳遞。