Я столкнулся с некоторыми проблемами с производительностью и памятью при обработке большого набора данных CSV. Весь процесс, от чтения набора данных до сохранения окончательного CSV-файла, требует очень много времени и памяти. Хотя мне почти удается запустить его на своем локальном компьютере, я изо всех сил пытаюсь заставить его работать на сервере контроля качества. Я надеюсь получить совет о том, как оптимизировать этот рабочий процесс.
- У меня есть набор данных с 4 миллионами строк и 510 столбцами. Однако для большинства этапов обработки мне нужно всего около 10 столбцов. В самом конце процесса мне нужно иметь все 510 столбцов, доступных для записи окончательного результата в формате CSV.
- Чтение этого набора данных с помощью Pandas занимает около 20 минут. Мне удалось сократить это время до 15 минут, читая данные порциями, но это все равно долго.
- После прочтения Я выполняю дедупликацию на основе составного ключа, что уменьшает набор данных с 4 миллионов строк примерно до 1,3 миллиона строк. Один только этот шаг дедупликации занимает еще 20 минут.
- После завершения дедупликации я присоединил набор данных (1,3 миллиона строк) к другому набору данных меньшего размера. там около 3000 записей. Поскольку объединение основано на меньшем наборе данных, для окончательного результата мне нужно всего около 2950 строк из большего набора данных.
- После объединения Я выполняю базовое форматирование и сохраняю результат в формате CSV. Конечный результат содержит все 700 столбцов (включая столбцы из обоих наборов данных), но только около 3000 строк.
[*]Есть ли способ сократить время, необходимое для чтения этого большого набора данных (сейчас около 15–20 минут)?[*]Поскольку мне нужно всего лишь около 3000 строк в конечном выводе, но во время конвейера обрабатывается 1,3 миллиона строк, есть ли способ минимизировать использование памяти, загружая только необходимые данные на ранней стадии процесса и извлекая оставшиеся столбцы позже ?
[*]Существуют ли в Pandas какие-либо передовые методы или методы для эффективной обработки больших файлов CSV, особенно когда большинство столбцов не нужны до последнего шага?
< li>Мы будем очень признательны за любые предложения о том, как повысить эффективность и производительность памяти, особенно если они будут использовать Pandas или аналогичные библиотеки (поскольку такие библиотеки, как Dask, недоступны в нашей среде).
Подробнее здесь: https://stackoverflow.com/questions/791 ... processing