Я обрабатываю большие CSV файлы (порядка нескольких ГБ с 10 М строк) с помощью Python script.
Файлы имеют разные длины строк и не могут быть полностью загружены в память для анализа.
Каждая строка обрабатывается отдельно функцией в моем script. Для анализа одного файла требуется около 20 минут, и, похоже, скорость доступа к диску не является проблемой, а скорее вызовом обработки/функции.
Код выглядит примерно так (очень просто). Фактический код использует структуру класса, но это похоже:
csvReader = csv.reader(open("file","r")
for row in csvReader:
handleRow(row, dataStructure)
Учитывая, что для вычисления требуется общая структура данных, какой был бы лучший способ параллельного анализа анализа на Python с использованием нескольких ядер?
В общем, как я могу прочитать сразу несколько строк из .csv в Python для передачи потоку/процессу? Цикл с for
по строкам не очень эффективен.
Спасибо!