У меня есть несколько файлов по 3 ГБ с разделителями табуляции. В каждом файле 20 миллионов строк. Все строки должны быть обработаны независимо друг от друга, никаких связей между двумя строками нет. Мой вопрос в том, что будет быстрее А. Чтение построчно с помощью:
with open() as infile:
for line in infile:
Или B. Чтение файла в память кусками и его обработка, скажем, 250 МБ за раз?
Обработка не очень сложно, я просто захватывая значение в column1 для List1
, column2 к List2
и т.д. Может нужно добавить несколько значений столбцов вместе.
Я использую Python 2.7 на Linux-коробке, которая имеет 30 ГБ памяти. ASCII Text.
Есть ли способ ускорить процесс параллельно? Прямо сейчас я использую первый метод, и процесс очень медленный. CSVReader
ли использование какого- CSVReader
модуля CSVReader
? Мне не нужно делать это на python, приветствуются любые другие идеи использования языка или базы данных.