Я потратил неделю на обработку некоторых gnarly текстовых файлов - некоторые в сотне миллионов рядов.пределы python в параллельной обработке файлов
Я использовал python для открытия, разбора, преобразования и вывода этих файлов. Я выполнял задания параллельно, часто 6 -8 за раз, на массивном 8-процессорном 16-ядерном блоке EC2, используя SSD.
И я бы сказал, что выход плохо на 0,001% записи, как:
Expected output: |1107|2013-01-01 00:00:00|PS|Johnson|etc.
Actual output: |11072013-01-01 00:00:00|PS|Johnson|etc.
or |1107|2013-01-01 :00:00|PS|Johnson
Почти всегда, проблема не GIGO, а то, что Python не удалось написать разделитель или часть поле даты. Таким образом, я предполагаю, что я перегружаю SSD этими заданиями или, вернее, компьютер не работает с дросселем python на основе конкуренции записи для диска.
Мой вопрос заключается в следующем: как получить самую быструю обработку из этой коробки, но не вызвать такие ошибки «писать»?
Не те ли ошибки записи из-за вашего поведения? Маловероятно, что SSD перегружен. Вы пишете один файл из разных процессов/потоков? – Xaqq
Просьба подробно остановиться на «вашем способе делать вещи» - мой способ написать файлы, используя csv.writer с разделителем каналов. SSD обрабатывает 50 тыс. Записей, пишет вторую. –
Что я имел в виду, вы пишете одновременно один и тот же файл? Потому что, если это так, то это, вероятно, станет причиной вашей проблемы. – Xaqq