在 parquet-java 中读取 parquet 需要太长时间

问题描述 投票:0回答:1

我正在使用 parquet-hadoop 读取 Snappy 压缩的 parquet 文件。然而,我发现读取时间与文件大小成二次方,而且长得令人无法接受。

以下是我正在使用的代码。

try (ParquetFileReader reader = ParquetFileReader.open(file, ParquetReadOptions.builder().build())) {
            ...
            MessageType schema = reader.getFileMetaData().getSchema();
            GroupRecordConverter converter = new GroupRecordConverter(schema);
            PageReadStore pageReadStore = reader.readNextRowGroup();
            MessageColumnIO columnIo = new ColumnIOFactory().getColumnIO(schema);
            RecordReader<Group> recordReader = columnIo.getRecordReader(pageReadStore, converter);

对于 32MB 的 parquet 文件,

getRecordReader
步骤大约需要 30 秒,如果文件大小加倍,则需要四倍时间。

如何更快地读取文件?

我正在使用 parquet-java 中的 parquet-hadoop 1.13.1。

hadoop parquet
1个回答
0
投票

当我开始使用 Java 中的 Parquet 时,我遇到了类似的问题。 检查您的项目依赖项并包含日志记录库。 据我记得,我在调试代码,发现在没有它的情况下,内部日志级别是debug,并执行了日志逻辑,没有打印它,消耗了大量时间。

© www.soinside.com 2019 - 2024. All rights reserved.