Hi Cheolsoo,

I tried to apply the patch and rebuild pig but it's still not working.

When I try to use assert just like in pig docs I get an exception if I add
a message:

a = LOAD '/data' USING PigStorage() AS (source_id:int,
source_name:chararray);
ASSERT a BY source_id > 9 'source_id should be greater than 9';


Pig Stack Trace
---------------
ERROR 1200: <line 87, column 31>  mismatched input ''source_id should be
greater than 9'' expecting SEMI_COLON

Failed to parse: <line 87, column 31>  mismatched input ''source_id should
be greater than 9'' expecting SEMI_COLON
    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:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:160)


If I remove the message I'm able to execute the script but get a NPE:

org.apache.pig.backend.executionengine.ExecException: ERROR 0: Error
while executing ForEach at [Select_Source[82,16]]
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNextTuple(POForEach.java:306)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:282)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:277)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:64)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:363)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1232)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)
Caused by: java.lang.NullPointerException
        at org.apache.pig.builtin.Assert.exec(Assert.java:38)
        at org.apache.pig.builtin.Assert.exec(Assert.java:30)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:330)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNextBoolean(POUserFunc.java:385)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POAnd.getNextBoolean(POAnd.java:67)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter.getNextTuple(POFilter.java:148)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:281)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNextTuple(POForEach.java:242)
        ... 11 more


Any idea?

Thanks,
Ron

On Mon, Feb 24, 2014 at 7:12 PM, Cheolsoo Park <piaozhe...@gmail.com> wrote:

> Hi Ron,
>
> You're right that assert is broken in 0.12.0. Here is the jira-
> https://issues.apache.org/jira/browse/PIG-3670
>
> The fix will be included in 0.12.1 and onwards. In the meantime, can you
> apply the patch and rebuild Pig?
>
> Thanks,
> Cheolsoo
>
>
> On Mon, Feb 24, 2014 at 4:11 AM, Ronald Green <green.ron...@gmail.com
> >wrote:
>
> > Hi,
> >
> > It seems like ASSERT doesn't really work in Pig 0.12. I get the following
> > message when I try to use ASSERT:
> >
> > [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Error during
> > parsing. Encountered " <IDENTIFIER> "assert "" at line 1, column 1.
> > Was expecting one of: ...
> >
> > I also tried without the ASSERT keyword (simply A by a1>0 'message') but
> it
> > doesn't work as well.
> >
> > The versions I tested were  0.12.0 (r1529718)   and Pig
> 0.12.0.2.0.6.1-101.
> >
> > Any idea?
> >
> > Thanks,
> > Ron
> >
>

Reply via email to