1

我有一个存储在 AWS S3 中的镶木地板文件,我想查询它。我想检索某行数据,因为它等于一个值。几乎就像我在 SQL 中所做的那样:

SELECT * FROM file.parquet WHERE id = '1234';

我正在使用parquet-mr直接从 S3 将其加载到内存中并读取它并设置它AvroParquetReader以读取行。

我已经将每一行复制到一个 Map 中以便于查询,但是有没有更好的方法来做到这一点?的文档parquet-mr不是很好,大多数教程都使用不推荐使用的方法。

这是我所拥有的一些示例代码:

final ParquetReader<GenericRecord> reader = AvroParquetReader
                .<GenericRecord>builder(internalPath)
                .withConf(parquetConfiguration).build();

您可以使用reader.read()来获取文件中的下一行(这是我用来将其放入 a 的内容HashMap,但我找不到任何parquet-mr允许您在不将整个文件加载到内存的情况下查询文件的方法.

4

1 回答 1

0

您正在寻找的功能称为谓词下推。您可以阅读它并在此处找到示例。

于 2019-02-08T15:46:00.947 回答