[ https://issues.apache.org/jira/browse/PIG-4449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14349465#comment-14349465 ]
Daniel Dai commented on PIG-4449: --------------------------------- Good optimization. POSort already capture "limit" semantics, we just need to make use of it in POSort and enable it with an optimization rule. > Optimize the case of Order by + Limit in nested foreach > ------------------------------------------------------- > > Key: PIG-4449 > URL: https://issues.apache.org/jira/browse/PIG-4449 > Project: Pig > Issue Type: Improvement > Reporter: Rohini Palaniswamy > > This is one of the very frequently used patterns > {code} > grouped_data_set = group data_set by id; > capped_data_set = foreach grouped_data_set > { > ordered = order joined_data_set by timestamp desc; > capped = limit ordered $num; > generate flatten(capped); > }; > {code} > But this performs very poorly when there are millions of rows for a key in > the groupby with lot of spills. This can be easily optimized by pushing the > limit into the InternalSortedBag and maintain only $num records any time and > avoid memory pressure. -- This message was sent by Atlassian JIRA (v6.3.4#6332)