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

uncleGen updated SPARK-6695:
----------------------------
    Description: 
In practical use, we usually need to create a big iterator, which means too big 
in `memory usage` or too long in `array size`. On the one hand, it leads to too 
much memory consumption. On the other hand, one `Array` may not hold all the 
elements, as java array indices are of type 'int' (4 bytes or 32 bits). So, 
IMHO, we may provide a `collector`, which has a buffer, 100MB or any others, 
and could spill data into disk. The use case may like:

{code: borderStyle=solid}

   rdd.mapPartition { it => 
      ...
      val collector = new ExternalCollector()
      collector.collect(a)
      ...
      collector.iterator
  }
   
{code}

I have done some related works, and I need your opinions, thanks!

  was:
In practical use, we usually need to create a big iterator, which means too big 
in `memory usage` or too long in `array size`. On the one hand, it leads to too 
much memory consumption. On the other hand, one `Array` may not hold all the 
elements, as java array indices are of type 'int' (4 bytes or 32 bits). So, 
IMHO, we may provide a `collector`, which has a buffer, 100MB or any others, 
and could spill data into disk. The use case may like:

```

   rdd.mapPartition { it => 
      ...
      val collector = new ExternalCollector()
      collector.collect(a)
      ...
      collector.iterator
  }
   
```

I have done some related works, and I need your opinions, thanks!


> Add an external iterator: a hadoop-like output collector
> --------------------------------------------------------
>
>                 Key: SPARK-6695
>                 URL: https://issues.apache.org/jira/browse/SPARK-6695
>             Project: Spark
>          Issue Type: New Feature
>          Components: Spark Core
>            Reporter: uncleGen
>
> In practical use, we usually need to create a big iterator, which means too 
> big in `memory usage` or too long in `array size`. On the one hand, it leads 
> to too much memory consumption. On the other hand, one `Array` may not hold 
> all the elements, as java array indices are of type 'int' (4 bytes or 32 
> bits). So, IMHO, we may provide a `collector`, which has a buffer, 100MB or 
> any others, and could spill data into disk. The use case may like:
> {code: borderStyle=solid}
>    rdd.mapPartition { it => 
>       ...
>       val collector = new ExternalCollector()
>       collector.collect(a)
>       ...
>       collector.iterator
>   }
>    
> {code}
> I have done some related works, and I need your opinions, thanks!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to