我有一个存储在 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
允许您在不将整个文件加载到内存的情况下查询文件的方法.