Я пытаюсь распараллелить приложение, используя многопроцессорную обработку, которая принимает очень большой файл csv (от 64 Мбайт до 500 МБ), выполняет некоторые операции за строкой, а затем выводит небольшой фиксированный размер файл.
В настоящее время я делаю list(file_obj)
, который, к сожалению, полностью загружен
в памяти (я думаю), и тогда я разбиваю этот список на n частей, n -
количество процессов, которые я хочу запустить. Затем я делаю a pool.map()
на разбитом
списки.
Похоже, что это действительно очень плохое время исполнения по сравнению с одним многопротокольная, просто-открытая файл-и-итерация-над-методология. Может кто-нибудь предложить лучшее решение?
Кроме того, мне нужно обработать строки файла в группах, которые сохраняют значение определенного столбца. Эти группы строк могут быть разделены, но ни одна группа не должна содержать более одного значения для этого столбца.