-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Significant memory and swap usage during conversion from jsonl.zst to parquet #34
Comments
В undatum преобразование файлов перестроено на библиотеку iterabledata https://github.com/apicrafter/pyiterable/ и там весь код кодеков и поддерживаемых типов файлов. Вот эта ситуация связана не с zst форматом, а с тем что идет преобразование в parquet формат.
Поэтому для совместимости сейчас используется преобразование через pandas, но да, оно плохо работает на больших файлах JSONL файлах. Я могу добавить автопереключение в режим pyarrow для JSONL файлов или опции для undatum меняющие режим работы. Пока вот пример по преобразованию JSONL файла с помощью библиотеки pyiterable в потоковом режиме.
|
понял. Наверное можно оба вариант, по умолчанию будет происходит переключение, если файл больше чем 80% RAM, или явно передать опцию, если точно хотим потоковый вариант И в доку дописать этот нюанс ) |
Кстати, на днях, случилось так, что смог нарастить RAM до 96Gb и всё равно проблема такая же |
При конвертации файлов
jsonl.zst
в форматparquet
, очень сильно вырастает потребление RAM и SWAP. Программа завершается c помощью OOMKiller. Нагрука на CPU - незначительнаяРазмер исходного файла от 5 до 8Gb
Интересно, что в коде я не увидел явной поддержки zst, может какие-то нюансы у формата..
undatum convert --format-in jsonl ~/records0.jsonl.zst test.parquet
The text was updated successfully, but these errors were encountered: