You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Haishan Liu (JIRA)" <ji...@apache.org> on 2014/02/20 03:01:26 UTC

[jira] [Updated] (PIG-3772) Syntax error when casting an inner schema of a bag and line break involved

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

Haishan Liu updated PIG-3772:
-----------------------------

    Description: 
Hi,

The following script fails with syntax error

{code}
A = load 'data' as (a:{(x:chararray, y:float)}, b:chararray);
B = foreach A generate
    b,
    (bag{tuple(long)}) a.x as ax:{(x:long)};
{code}

where the cast statement is on its own line.

The script fails with the following exception:
{code}
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during parsing.   Syntax error, unexpected symbol at or near 'bag'
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1607)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1546)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer.registerQuery(PigServer.java:516)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:988)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:412)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:194)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:170)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.Main.run(Main.java:604)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigRunner.run(PigRunner.java:49)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper.runPigJob(HadoopSecurePigWrapper.java:116)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper$1.run(HadoopSecurePigWrapper.java:106)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper$1.run(HadoopSecurePigWrapper.java:103)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at java.security.AccessController.doPrivileged(Native Method)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at javax.security.auth.Subject.doAs(Subject.java:396)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper.main(HadoopSecurePigWrapper.java:103)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - Caused by: Failed to parse:   Syntax error, unexpected symbol at or near 'bag'
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:235)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:177)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1599)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	... 16 more
{code}

The script succeeds if the foreach statement is written in one line:
{code}
B = foreach A generate b, (bag{tuple(long)}) a.x as ax:{(x:long)};
{code}

This problem happens only in batch mode.

  was:
Hi,

The following script fails with syntax error

{code}
A = load 'data' as (a:{(x:chararray, y:float)}, b:chararray);
B = foreach A generate
    b,
    (bag{tuple(long)}) a.x as ax:{(x:long)};
{code}

where the cast statement is on its online.

The script fails with the following exception:
{code}
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during parsing.   Syntax error, unexpected symbol at or near 'bag'
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1607)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1546)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer.registerQuery(PigServer.java:516)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:988)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:412)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:194)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:170)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.Main.run(Main.java:604)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigRunner.run(PigRunner.java:49)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper.runPigJob(HadoopSecurePigWrapper.java:116)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper$1.run(HadoopSecurePigWrapper.java:106)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper$1.run(HadoopSecurePigWrapper.java:103)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at java.security.AccessController.doPrivileged(Native Method)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at javax.security.auth.Subject.doAs(Subject.java:396)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper.main(HadoopSecurePigWrapper.java:103)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - Caused by: Failed to parse:   Syntax error, unexpected symbol at or near 'bag'
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:235)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:177)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1599)
19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	... 16 more
{code}

The script succeeds if the foreach statement is written in one line:
{code}
B = foreach A generate b, (bag{tuple(long)}) a.x as ax:{(x:long)};
{code}

This problem happens only in batch mode.


> Syntax error when casting an inner schema of a bag and line break involved
> --------------------------------------------------------------------------
>
>                 Key: PIG-3772
>                 URL: https://issues.apache.org/jira/browse/PIG-3772
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.11.1
>            Reporter: Haishan Liu
>
> Hi,
> The following script fails with syntax error
> {code}
> A = load 'data' as (a:{(x:chararray, y:float)}, b:chararray);
> B = foreach A generate
>     b,
>     (bag{tuple(long)}) a.x as ax:{(x:long)};
> {code}
> where the cast statement is on its own line.
> The script fails with the following exception:
> {code}
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during parsing.   Syntax error, unexpected symbol at or near 'bag'
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1607)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1546)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer.registerQuery(PigServer.java:516)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:988)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:412)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:194)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:170)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.Main.run(Main.java:604)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigRunner.run(PigRunner.java:49)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper.runPigJob(HadoopSecurePigWrapper.java:116)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper$1.run(HadoopSecurePigWrapper.java:106)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper$1.run(HadoopSecurePigWrapper.java:103)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at java.security.AccessController.doPrivileged(Native Method)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at javax.security.auth.Subject.doAs(Subject.java:396)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at azkaban.jobtype.HadoopSecurePigWrapper.main(HadoopSecurePigWrapper.java:103)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - Caused by: Failed to parse:   Syntax error, unexpected symbol at or near 'bag'
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:235)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:177)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1599)
> 19-02-2014 17:30:22 PST jymbii_train_jh ERROR - 	... 16 more
> {code}
> The script succeeds if the foreach statement is written in one line:
> {code}
> B = foreach A generate b, (bag{tuple(long)}) a.x as ax:{(x:long)};
> {code}
> This problem happens only in batch mode.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)