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.