Recolher dados de um arquivo grande para multiprocessamento?

Estou tentando paralelizar um aplicativo usando o multiprocessamento, que obtém um arquivo csv muito grande (64 MB a 500 MB), executa algumas linhas por linha e gera um arquivo pequeno e de tamanho fix

Atualmente faço umlist(file_obj), que infelizmente é totalmente carregado na memória (acho) e, em seguida, divido a lista em n partes, sendo n o número de processos que quero executar. Eu então faço umpool.map() nas listas divididas.

Este parece ter um tempo de execução muito, muito ruim em comparação com uma única metodologia de thread, apenas abra o arquivo e itere sobre ele. Alguém pode sugerir uma solução melhor?

Além disso, preciso processar as linhas do arquivo em grupos que preservam o valor de uma determinada coluna. Esses grupos de linhas podem ser divididos, mas nenhum grupo deve conter mais de um valor para esta colun

questionAnswers(2)

yourAnswerToTheQuestion