[ https://issues.apache.org/jira/browse/PIG-2847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthew Hayes updated PIG-2847: ------------------------------- Description: I'm using PigUnit to test a pig script within which a macro is defined. When I run it I get the error below. [testng] org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during parsing. Can not create a Path from a null string [testng] at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1595) [testng] at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1534) [testng] at org.apache.pig.PigServer.registerQuery(PigServer.java:516) [testng] at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:990) [testng] at org.apache.pig.pigunit.pig.GruntParser.processPig(GruntParser.java:61) [testng] at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:412) [testng] at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:193) [testng] at org.apache.pig.pigunit.pig.PigServer.registerScript(PigServer.java:56) [testng] at org.apache.pig.pigunit.PigTest.registerScript(PigTest.java:160) [testng] at org.apache.pig.pigunit.PigTest.runScript(PigTest.java:170) [testng] at datafu.test.pig.macros.MacrosTests.macrosTest(MacrosTests.java:32) [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [testng] at java.lang.reflect.Method.invoke(Method.java:597) [testng] at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) [testng] at org.testng.internal.Invoker.invokeMethod(Invoker.java:691) [testng] at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:883) [testng] at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1208) [testng] at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) [testng] at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) [testng] at org.testng.TestRunner.privateRun(TestRunner.java:754) [testng] at org.testng.TestRunner.run(TestRunner.java:614) [testng] at org.testng.SuiteRunner.runTest(SuiteRunner.java:335) [testng] at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:330) [testng] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292) [testng] at org.testng.SuiteRunner.run(SuiteRunner.java:241) [testng] at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) [testng] at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) [testng] at org.testng.TestNG.runSuitesSequentially(TestNG.java:1169) [testng] at org.testng.TestNG.runSuitesLocally(TestNG.java:1094) [testng] at org.testng.TestNG.run(TestNG.java:1006) [testng] at org.testng.TestNG.privateMain(TestNG.java:1316) [testng] at org.testng.TestNG.main(TestNG.java:1280) [testng] Caused by: java.lang.IllegalArgumentException: Can not create a Path from a null string [testng] at org.apache.hadoop.fs.Path.checkPathArg(Path.java:78) [testng] at org.apache.hadoop.fs.Path.<init>(Path.java:90) [testng] at org.apache.pig.impl.io.FileLocalizer.fetchFilesInternal(FileLocalizer.java:766) [testng] at org.apache.pig.impl.io.FileLocalizer.fetchFile(FileLocalizer.java:733) [testng] at org.apache.pig.parser.QueryParserDriver.getMacroFile(QueryParserDriver.java:350) [testng] at org.apache.pig.parser.QueryParserDriver.makeMacroDef(QueryParserDriver.java:411) [testng] at org.apache.pig.parser.QueryParserDriver.expandMacro(QueryParserDriver.java:268) [testng] at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:169) [testng] at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1587) [testng] ... 33 more The pig script below generates this error: {code} register $JAR_PATH DEFINE row_count(data) returns count { grouped = GROUP $data ALL; $count = FOREACH grouped GENERATE COUNT_STAR($data); }; data = LOAD 'input' AS (key:INT); data2 = row_count(data); STORE data2 INTO 'output'; {code} However the pig script below, where I've expanded the macro manually, does not have the error and passes: {code} register $JAR_PATH data = LOAD 'input' AS (key:INT); grouped = GROUP data ALL; data2 = FOREACH grouped GENERATE COUNT(data); STORE data2 INTO 'output'; {code} was: I'm using PigUnit to test a pig script within which a macro is defined. When I run it I get the error below. [testng] org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during parsing. Can not create a Path from a null string [testng] at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1595) [testng] at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1534) [testng] at org.apache.pig.PigServer.registerQuery(PigServer.java:516) [testng] at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:990) [testng] at org.apache.pig.pigunit.pig.GruntParser.processPig(GruntParser.java:61) [testng] at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:412) [testng] at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:193) [testng] at org.apache.pig.pigunit.pig.PigServer.registerScript(PigServer.java:56) [testng] at org.apache.pig.pigunit.PigTest.registerScript(PigTest.java:160) [testng] at org.apache.pig.pigunit.PigTest.runScript(PigTest.java:170) [testng] at datafu.test.pig.macros.MacrosTests.macrosTest(MacrosTests.java:32) [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [testng] at java.lang.reflect.Method.invoke(Method.java:597) [testng] at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) [testng] at org.testng.internal.Invoker.invokeMethod(Invoker.java:691) [testng] at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:883) [testng] at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1208) [testng] at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) [testng] at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) [testng] at org.testng.TestRunner.privateRun(TestRunner.java:754) [testng] at org.testng.TestRunner.run(TestRunner.java:614) [testng] at org.testng.SuiteRunner.runTest(SuiteRunner.java:335) [testng] at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:330) [testng] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292) [testng] at org.testng.SuiteRunner.run(SuiteRunner.java:241) [testng] at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) [testng] at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) [testng] at org.testng.TestNG.runSuitesSequentially(TestNG.java:1169) [testng] at org.testng.TestNG.runSuitesLocally(TestNG.java:1094) [testng] at org.testng.TestNG.run(TestNG.java:1006) [testng] at org.testng.TestNG.privateMain(TestNG.java:1316) [testng] at org.testng.TestNG.main(TestNG.java:1280) [testng] Caused by: java.lang.IllegalArgumentException: Can not create a Path from a null string [testng] at org.apache.hadoop.fs.Path.checkPathArg(Path.java:78) [testng] at org.apache.hadoop.fs.Path.<init>(Path.java:90) [testng] at org.apache.pig.impl.io.FileLocalizer.fetchFilesInternal(FileLocalizer.java:766) [testng] at org.apache.pig.impl.io.FileLocalizer.fetchFile(FileLocalizer.java:733) [testng] at org.apache.pig.parser.QueryParserDriver.getMacroFile(QueryParserDriver.java:350) [testng] at org.apache.pig.parser.QueryParserDriver.makeMacroDef(QueryParserDriver.java:411) [testng] at org.apache.pig.parser.QueryParserDriver.expandMacro(QueryParserDriver.java:268) [testng] at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:169) [testng] at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1587) [testng] ... 33 more > Error defining macro within pig script when using PigUnit > --------------------------------------------------------- > > Key: PIG-2847 > URL: https://issues.apache.org/jira/browse/PIG-2847 > Project: Pig > Issue Type: Bug > Components: parser > Affects Versions: 0.11 > Reporter: Matthew Hayes > > I'm using PigUnit to test a pig script within which a macro is defined. When > I run it I get the error below. > [testng] org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: > Error during parsing. Can not create a Path from a null string > [testng] at > org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1595) > [testng] at > org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1534) > [testng] at org.apache.pig.PigServer.registerQuery(PigServer.java:516) > [testng] at > org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:990) > [testng] at > org.apache.pig.pigunit.pig.GruntParser.processPig(GruntParser.java:61) > [testng] at > org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:412) > [testng] at > org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:193) > [testng] at > org.apache.pig.pigunit.pig.PigServer.registerScript(PigServer.java:56) > [testng] at > org.apache.pig.pigunit.PigTest.registerScript(PigTest.java:160) > [testng] at org.apache.pig.pigunit.PigTest.runScript(PigTest.java:170) > [testng] at > datafu.test.pig.macros.MacrosTests.macrosTest(MacrosTests.java:32) > [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > [testng] at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > [testng] at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > [testng] at java.lang.reflect.Method.invoke(Method.java:597) > [testng] at > org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) > [testng] at org.testng.internal.Invoker.invokeMethod(Invoker.java:691) > [testng] at > org.testng.internal.Invoker.invokeTestMethod(Invoker.java:883) > [testng] at > org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1208) > [testng] at > org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) > [testng] at > org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) > [testng] at org.testng.TestRunner.privateRun(TestRunner.java:754) > [testng] at org.testng.TestRunner.run(TestRunner.java:614) > [testng] at org.testng.SuiteRunner.runTest(SuiteRunner.java:335) > [testng] at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:330) > [testng] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292) > [testng] at org.testng.SuiteRunner.run(SuiteRunner.java:241) > [testng] at > org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) > [testng] at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) > [testng] at org.testng.TestNG.runSuitesSequentially(TestNG.java:1169) > [testng] at org.testng.TestNG.runSuitesLocally(TestNG.java:1094) > [testng] at org.testng.TestNG.run(TestNG.java:1006) > [testng] at org.testng.TestNG.privateMain(TestNG.java:1316) > [testng] at org.testng.TestNG.main(TestNG.java:1280) > [testng] Caused by: java.lang.IllegalArgumentException: Can not create a > Path from a null string > [testng] at org.apache.hadoop.fs.Path.checkPathArg(Path.java:78) > [testng] at org.apache.hadoop.fs.Path.<init>(Path.java:90) > [testng] at > org.apache.pig.impl.io.FileLocalizer.fetchFilesInternal(FileLocalizer.java:766) > [testng] at > org.apache.pig.impl.io.FileLocalizer.fetchFile(FileLocalizer.java:733) > [testng] at > org.apache.pig.parser.QueryParserDriver.getMacroFile(QueryParserDriver.java:350) > [testng] at > org.apache.pig.parser.QueryParserDriver.makeMacroDef(QueryParserDriver.java:411) > [testng] at > org.apache.pig.parser.QueryParserDriver.expandMacro(QueryParserDriver.java:268) > [testng] at > org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:169) > [testng] at > org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1587) > [testng] ... 33 more > The pig script below generates this error: > {code} > register $JAR_PATH > DEFINE row_count(data) returns count { > grouped = GROUP $data ALL; > $count = FOREACH grouped GENERATE COUNT_STAR($data); > }; > data = LOAD 'input' AS (key:INT); > data2 = row_count(data); > STORE data2 INTO 'output'; > {code} > However the pig script below, where I've expanded the macro manually, does > not have the error and passes: > {code} > register $JAR_PATH > data = LOAD 'input' AS (key:INT); > grouped = GROUP data ALL; > data2 = FOREACH grouped GENERATE COUNT(data); > STORE data2 INTO 'output'; > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira