You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@crunch.apache.org by "David Whiting (JIRA)" <ji...@apache.org> on 2014/08/04 16:31:11 UTC

[jira] [Updated] (CRUNCH-454) Replace use of Scala Iterable with TraversableOnce where SingleUseIterable is the concrete type

     [ https://issues.apache.org/jira/browse/CRUNCH-454?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Whiting updated CRUNCH-454:
---------------------------------

    Attachment: 0001-Change-usage-of-Iterable-in-PGroupedTable-to-Travers.patch

Quick patch for the above. Tested in unit test but not in MR.

> Replace use of Scala Iterable with TraversableOnce where SingleUseIterable is the concrete type
> -----------------------------------------------------------------------------------------------
>
>                 Key: CRUNCH-454
>                 URL: https://issues.apache.org/jira/browse/CRUNCH-454
>             Project: Crunch
>          Issue Type: Improvement
>          Components: Scrunch
>            Reporter: David Whiting
>            Priority: Minor
>         Attachments: 0001-Change-usage-of-Iterable-in-PGroupedTable-to-Travers.patch
>
>
> The Scrunch version of combine accepts a function Iterable[V] => V . This causes a lot of unexpected behaviour because the iterable that is wrapped is actually a SingleUseIterable, and much of Scala's collection function implementations actually try and access the underlying iterator multiple times if they know that it's possible. 
> The fix implemented here is to call iterator() on the underlying SingleUseIterable and expose it instead as a TraversableOnce.



--
This message was sent by Atlassian JIRA
(v6.2#6252)