如何使用Parquet-Mr查询Parquet文件?

时间:2019-02-08 08:51:27

标签: java parquet parquet-mr

我有一个要查询的存储在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()来获取文件的下一行(这是我用来将其放入HashMap的内容,但是我在{{ 1}},可让您查询文件而无需将整个文件加载到内存中。

1 个答案:

答案 0 :(得分:0)

您要查找的功能称为谓词下推。您可以阅读有关内容并找到示例here