В nodeJS я пытаюсь прочитать файл паркета (сжатие = 'snappy'), но безуспешно.
Я использовал модуль npm https://github.com/ironSource/parquetjs, чтобы открыть локальный файл и прочитать его. но reader.cursor () выдает загадочную ошибку «еще не реализовано». Не имеет значения, какое сжатие (обычное, rle или мгновенное) использовалось для создания входного файла, оно вызывает ту же ошибку.
Вот мой код:
const readParquet = async (fileKey) => {
const filePath = 'parquet-test-file.plain'; // 'snappy';
console.log('----- reading file : ', filePath);
let reader = await parquet.ParquetReader.openFile(filePath);
console.log('---- ParquetReader initialized....');
// create a new cursor
let cursor = reader.getCursor();
// read all records from the file and print them
if (cursor) {
console.log('---- cursor initialized....');
let record = await cursor.next() ; // this line throws exception
while (record) {
console.log(record);
record = await cursor.next();
}
}
await reader.close();
console.log('----- done with reading parquet file....');
return;
};
Позвоните, чтобы прочитать:
let dt = readParquet(fileKeys.dataFileKey);
dt
.then((value) => console.log('--------SUCCESS', value))
.catch((error) => {
console.log('-------FAILURE ', error); // Random error
console.log(error.stack);
})
Дополнительная информация: 1. Я сгенерировал свои паркетные файлы на python с помощью pyarrow.parquet 2. Я использовал сжатие SNAPPY при записи файла 3. Я могу читать эти файлы в python без каких-либо проблем 4. Моя схема не исправлена (неизвестно) каждый раз пишу паркетный файл. Я не создаю схему во время написания. 5. error.stack выводит в консоли undefined 6. console.log ('------- FAILURE', error); печатает "еще не реализовано"
Я хотел бы знать, сталкивался ли кто-нибудь с подобной проблемой и есть ли идеи / решения, которыми можно поделиться. Кстати, мои паркетные файлы хранятся на AWS S3 (в отличие от этого тестового кода). Мне все еще нужно найти решение, чтобы прочитать паркетный файл из ведра S3.
Любая помощь, предложения, пример кода будут высоко оценены.