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

Reply via email to