You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Viraj Bhat (JIRA)" <ji...@apache.org> on 2009/05/19 22:25:45 UTC

[jira] Commented: (PIG-656) Use of eval word in the package hierarchy of a UDF causes parse exception

    [ https://issues.apache.org/jira/browse/PIG-656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12710862#action_12710862 ] 

Viraj Bhat commented on PIG-656:
--------------------------------

Another pig parse issue when a udf was defined within a package which had "matches" keywords in its path.

So something like :
define DISTANCE_SCORE mypackage.pig.udf.matches.LevensteinMatchUDF();

gives a parse error

"
ERROR 1000: Error during parsing. Encountered " "matches" "matches "" at 
line 11, column 42.
Was expecting:
     <IDENTIFIER> ...
"

It is possible to have keywords from pig within package names or even  udf - shouldn't pig not be robust to simple grammar disambiguation of  this sort ?

> Use of eval word in the package hierarchy of a UDF causes parse exception
> -------------------------------------------------------------------------
>
>                 Key: PIG-656
>                 URL: https://issues.apache.org/jira/browse/PIG-656
>             Project: Pig
>          Issue Type: Bug
>          Components: documentation, grunt
>    Affects Versions: 0.2.0
>            Reporter: Viraj Bhat
>             Fix For: 0.2.0
>
>         Attachments: mywordcount.txt, TOKENIZE.jar
>
>
> Consider a Pig script which does something similar to a word count. It uses the built-in TOKENIZE function, but packages it inside a class hierarchy such as "mypackage.eval"
> {code}
> register TOKENIZE.jar
> my_src  = LOAD '/user/viraj/mywordcount.txt' USING PigStorage('\t')  AS (mlist: chararray);
> modules = FOREACH my_src GENERATE FLATTEN(mypackage.eval.TOKENIZE(mlist));
> describe modules;
> grouped = GROUP modules BY $0;
> describe grouped;
> counts  = FOREACH grouped GENERATE COUNT(modules), group;
> ordered = ORDER counts BY $0;
> dump ordered;
> {code}
> The parser complains:
> ===========================================================================================================================
> 2009-02-05 01:17:29,231 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Error during parsing. Invalid alias: mypackage in {mlist: chararray}
> ===========================================================================================================================
> I looked at the following source code at (src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt) and it seems that : EVAL is a keyword in Pig. Here are some clarifications:
> 1) Is there documentation on what the EVAL keyword actually is?
> 2) Is EVAL keyword actually implemented?
> Viraj

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.