У меня есть файл паркета, хранящийся в AWS S3, который я хочу запросить.Я хочу получить определенную строку данных, учитывая, что она равна значению.Почти как в SQL:
SELECT * FROM file.parquet WHERE id = '1234';
Я использую parquet-mr
, чтобы загрузить его в память непосредственно из S3 и прочитать и настроить его на AvroParquetReader
чтобы прочитать строки.
Я скопировал каждую строку в карту для упрощения запросов, однако есть ли лучший способ сделать это?Документация для parquet-mr
невелика, и в большинстве уроков используются устаревшие методы.
Вот пример кода, который я получил:
final ParquetReader<GenericRecord> reader = AvroParquetReader
.<GenericRecord>builder(internalPath)
.withConf(parquetConfiguration).build();
Вы можете использовать reader.read()
чтобы получить следующую строку в файле (это то, что я использовал, чтобы поместить его в HashMap
, но я не могу найти какие-либо методы в parquet-mr
, которые позволяют вам запрашивать файл без загрузки всего файлав память.