pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anitha Raju (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (PIG-2414) Syntax error when line break and tab involved
Date Thu, 08 Dec 2011 14:28:39 GMT

     [ https://issues.apache.org/jira/browse/PIG-2414?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Anitha Raju updated PIG-2414:
-----------------------------

    Description: 
Hi,

The following script fails with syntax error 

Script
{code}
A = load 'test.txt' as (a:int,b:long);
B = group A by a;
C = foreach B generate
        flatten((IsEmpty(A) ? {(0)} : {(1)}));
{code}

where "generate" and "flatten" are separated by line break and a tab. 

This script fails with the following exception 

{code}
ERROR 1200: <file bug.pig, line 4, column 8>  Syntax error, unexpected symbol at or
near '('

Failed to parse: <file bug.pig, line 4, column 8>  Syntax error, unexpected symbol at
or near '('
        at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:222)
        at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:164)
        at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1609)
        at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1582)
        at org.apache.pig.PigServer.registerQuery(PigServer.java:584)
        at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:939)
        at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386)
        at org.apache.pig.tools.grunt.GruntParser.loadScript(GruntParser.java:516)
        at org.apache.pig.tools.grunt.GruntParser.processExplain(GruntParser.java:314)
        at org.apache.pig.tools.grunt.Grunt.checkScript(Grunt.java:95)
        at org.apache.pig.Main.run(Main.java:557)
        at org.apache.pig.Main.main(Main.java:111)
{code}

Even without flatten it would fail. 

-------------
((IsEmpty(A) ? {(0)} : {(1)}));
-------------

Here are some cases where it would work
-> flatten put in the same line as foreach (tab or space seperated)

========================
A = load 'test.txt' as (a:int,b:long);
B = group A by a;
C = foreach B generate        flatten((IsEmpty(A) ? {(0)} : {(1)}));
======================

-> a space and a line break and a tab between flatten and generate, the script passes

=======================
A = load 'test.txt' as (a:int,b:long);
B = group A by a;
C = foreach B generate <space>
	flatten((IsEmpty(A) ? {(0)} : {(1)}));
======================

This fails with both 0.8 and 0.9.

Regards,
Anitha




  was:
Hi,

The following script fails with syntax error 

Script
{code}
A = load 'test.txt' as (a:int,b:long);
B = group A by a;
C = foreach B generate
        flatten((IsEmpty(A) ? {(0)} : {(1)}));
{code}

where "generate" and "flatten" are separated by line break and a tab. 

This script fails with the following exception 

{code}
ERROR 1200: <file bug.pig, line 4, column 8>  Syntax error, unexpected symbol at or
near '('

Failed to parse: <file bug.pig, line 4, column 8>  Syntax error, unexpected symbol at
or near '('
        at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:222)
        at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:164)
        at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1609)
        at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1582)
        at org.apache.pig.PigServer.registerQuery(PigServer.java:584)
        at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:939)
        at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386)
        at org.apache.pig.tools.grunt.GruntParser.loadScript(GruntParser.java:516)
        at org.apache.pig.tools.grunt.GruntParser.processExplain(GruntParser.java:314)
        at org.apache.pig.tools.grunt.Grunt.checkScript(Grunt.java:95)
        at org.apache.pig.Main.run(Main.java:557)
        at org.apache.pig.Main.main(Main.java:111)
{code}

Even without flatten it would fail. 

-------------
((IsEmpty(A) ? {(0)} : {(1)}));
-------------

Here are some cases where it would work
-> flatten put in the same line as foreach (tab or space seperated)

{code}
A = load 'test.txt' as (a:int,b:long);
B = group A by a;
C = foreach B generate        flatten((IsEmpty(A) ? {(0)} : {(1)}));
{code}

-> a space and a line break and a tab between flatten and generate, the script passes

{code}
A = load 'test.txt' as (a:int,b:long);
B = group A by a;
C = foreach B generate <space>
	flatten((IsEmpty(A) ? {(0)} : {(1)}));
{code}

This fails with both 0.8 and 0.9.

Regards,
Anitha




    
> Syntax error when line break and tab involved
> ---------------------------------------------
>
>                 Key: PIG-2414
>                 URL: https://issues.apache.org/jira/browse/PIG-2414
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.8.1, 0.9.0
>            Reporter: Anitha Raju
>
> Hi,
> The following script fails with syntax error 
> Script
> {code}
> A = load 'test.txt' as (a:int,b:long);
> B = group A by a;
> C = foreach B generate
>         flatten((IsEmpty(A) ? {(0)} : {(1)}));
> {code}
> where "generate" and "flatten" are separated by line break and a tab. 
> This script fails with the following exception 
> {code}
> ERROR 1200: <file bug.pig, line 4, column 8>  Syntax error, unexpected symbol at
or near '('
> Failed to parse: <file bug.pig, line 4, column 8>  Syntax error, unexpected symbol
at or near '('
>         at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:222)
>         at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:164)
>         at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1609)
>         at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1582)
>         at org.apache.pig.PigServer.registerQuery(PigServer.java:584)
>         at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:939)
>         at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386)
>         at org.apache.pig.tools.grunt.GruntParser.loadScript(GruntParser.java:516)
>         at org.apache.pig.tools.grunt.GruntParser.processExplain(GruntParser.java:314)
>         at org.apache.pig.tools.grunt.Grunt.checkScript(Grunt.java:95)
>         at org.apache.pig.Main.run(Main.java:557)
>         at org.apache.pig.Main.main(Main.java:111)
> {code}
> Even without flatten it would fail. 
> -------------
> ((IsEmpty(A) ? {(0)} : {(1)}));
> -------------
> Here are some cases where it would work
> -> flatten put in the same line as foreach (tab or space seperated)
> ========================
> A = load 'test.txt' as (a:int,b:long);
> B = group A by a;
> C = foreach B generate        flatten((IsEmpty(A) ? {(0)} : {(1)}));
> ======================
> -> a space and a line break and a tab between flatten and generate, the script passes
> =======================
> A = load 'test.txt' as (a:int,b:long);
> B = group A by a;
> C = foreach B generate <space>
> 	flatten((IsEmpty(A) ? {(0)} : {(1)}));
> ======================
> This fails with both 0.8 and 0.9.
> Regards,
> Anitha

--
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

        

Mime
View raw message