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