pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Viraj Bhat (JIRA)" <j...@apache.org>
Subject [jira] Commented: (PIG-656) Use of eval word in the package hierarchy of a UDF causes parse exception
Date Tue, 19 May 2009 20:25:45 GMT

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


Mime
View raw message