hadoop - PIG LATIN script error 1000 -
i have created following script wherein trying use piggybank udf:
register /home/hduser/pig/contrib/piggybank/java/piggybank.jar; divs = load 'nyse_dividends.txt' using pigstorage(',') (exchange:chararray, symbol:chararray, date:chararray, dividends:float); backwards = foreach divs generate org.apache.pig.piggybank.evaluation.string.reverse(symbol); store backwards '/user/hduser/backwards.csv'; when run above line line in grunt shell works fine however, when try run script following error comes up:
2014-03-10 22:42:25,375 [main] error org.apache.pig.tools.grunt.grunt - error 1000: error during parsing. file not found: /user/hduser/register.pig i using hadoop 1.2.1 , pig 0.12 in pseudocluster mode.
the log below:
pig stack trace --------------- error 1000: error during parsing. file not found: register.pig org.apache.pig.tools.pigscript.parser.parseexception: file not found: register.pig @ org.apache.pig.tools.grunt.gruntparser.loadscript(gruntparser.java:547) @ org.apache.pig.tools.grunt.gruntparser.processscript(gruntparser.java:509) @ org.apache.pig.tools.pigscript.parser.pigscriptparser.script(pigscriptparser.java:1014) @ org.apache.pig.tools.pigscript.parser.pigscriptparser.parse(pigscriptparser.java:550) @ org.apache.pig.tools.grunt.gruntparser.parsestoponerror(gruntparser.java:198) @ org.apache.pig.tools.grunt.gruntparser.parsestoponerror(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(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:160)
i think you're using example "programming pig" (author alan gates, 2011, o'reilly media), has program called "register.pig". 1 piece of information you're not showing here how you've executed command, i'm guessing ran:
pig -f /user/hduser/register.pig this path looks it's referencing hdfs, file should on local filesystem, should try
pig -f /local/path/register.pig
note: can register udfs on command line when executing script, too. way don't have register inside script, if prefer not to.
pig -f /local/path/register.pig -dpig.additional.jars=/home/hduser/pig/contrib/piggybank/java/piggybank.jar
Comments
Post a Comment