[ 
https://issues.apache.org/jira/browse/PARQUET-2443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17824183#comment-17824183
 ] 

Claire McGinty commented on PARQUET-2443:
-----------------------------------------

Thanks Gang! I'll check out the Iceberg pattern. My implementation was as a 
java Iterator<DataPage>, which is a bit tricky because a chunk is a mixture of 
dictionary+data pages, so there are some awkward workarounds.

 

> Support lazy materialization of row groups in ParquetFileReader
> ---------------------------------------------------------------
>
>                 Key: PARQUET-2443
>                 URL: https://issues.apache.org/jira/browse/PARQUET-2443
>             Project: Parquet
>          Issue Type: Improvement
>            Reporter: Claire McGinty
>            Priority: Major
>
> Motivation: The current behavior of ParquetFilterReader#readNextRowGroup is 
> to eagerly enumerate all chunks in the row group, then read all pages in the 
> chunk. For distributed data workloads, this can cause significant memory 
> pressure, particularly for use cases that require the colocation of multiple 
> Parquet files on a single worker.
>  
> Proposal: A Parquet Configuration option that enables lazy row group reading, 
> i.e., only a page at a time (plus whatever header is necessary to read that 
> header). The Configuration option could be either a flag, or an int value for 
> how many pages/page bytes to buffer at a time.
>  
> I think this could be accomplished by modifying 
> [ParquetFileReader#readAllPages|https://github.com/apache/parquet-mr/blob/cf294a35ca4b635f44357fe4c170f3b66870dc6e/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetFileReader.java#L1727]
>  to re-implement pagesInChunk as an Iterator<DataPage>, rather than a 
> List<DataPage>. Then, ColumnChunkPageReader could parse the Configuration 
> option above and decide whether to fully materialize the iterator or not.
>  
> I'm happy to try to create a draft/branch for this to get some early feedback 
> on the idea!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to