apache / apache/parquet-java

No need to read full RowGroup when using RowRanges

未关闭
#3,231 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Type: enhancement
主要语言
Java
星标
3.1k
派生
1.6k
平均合并
3 天 12 小时
30 天内合并 PR
33

描述

### Describe the enhancement requested

I'm using ParquetFileReader and would like to read the few first line of a parquet file to show a preview to the user.
I'm doing this :
PageReadStore rowGroup = reader.readFilteredRowGroup(0, RowRanges.createSingle(10));
and then :
ColumnReadStore colReadStore = new ColumnReadStoreImpl(rowGroup,
new GroupRecordConverter(schema).getRootConverter(),
schemaLecture, ...);
etc.

The problem is when calling readFilteredRowGroup(), it reads the full row group in memory, which in my case is slow because the parquet file is on a network drive and has quite big row group. On top of that, it consumes RAM for nothing.

Is this an issue or could it be improved ?

Thanks in advance.
Olivier

### Component(s)

_No response_

贡献指南

这个仓库没有索引到贡献指南

调研方向

从 ParquetFileReader.readFilteredRowGroup() 开始,跟踪加载 row group 时如何处理 RowRanges.createSingle(10)。确定在哪里读取了完整的 row group,以及范围过滤如何能够限制网络读取和内存使用;当无需加载完整的 row group 即可读取请求的行时,就算完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
data-engineering
Issue 类型
功能
难度
4/5
预计耗时
3-5 天
活跃度
冷清
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。