You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Scott Carey (JIRA)" <ji...@apache.org> on 2010/04/22 08:38:50 UTC

[jira] Commented: (PIG-490) Combiner not used when group elements referred to in tuple notation instead of flatten.

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

Scott Carey commented on PIG-490:
---------------------------------

Ugh, so that is what is happening and why I almost never see combiners.  I almost always use the 'generate group.field1, group.field2' notation instead of flatten because it saves me a line projecting out "group::field1 as field1 ... " in the next line.  If I don't do the latter it tends to fail to parse when the alias output from the FOREACH is used later.    

That is to say I avoid FLATTEN(group) because it works around other peculiarities and ends up being harder to use than listing all the fields in the group.

This is with Pig 0.5.



> Combiner not used when group elements referred to in tuple notation instead of flatten.
> ---------------------------------------------------------------------------------------
>
>                 Key: PIG-490
>                 URL: https://issues.apache.org/jira/browse/PIG-490
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.2.0
>            Reporter: Alan Gates
>
> Given a query like:
> {code}
> A = load 'myfile';
> B = group A by ($0, $1);
> C = foreach B generate group.$0, group.$1, COUNT(A);
> {code}
> The combiner will not be invoked.  But if the last line is changed to:
> {code}
> C = foreach B generate flatten(group), COUNT(A);
> {code}
> it will be.  The reason for the discrepancy is because the CombinerOptimizer checks that all of the projections are simple.  If not, it does not use the combiner.  group.$0 is not a simple projection, so this is failed.  However, this is a common enough case that the CombinerOptimizer should detect it and still use the combiner. 

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