我花了一周的时间处理一些粗糙的文本文件——一些在数亿行范围内。
我使用 python 打开、解析、转换和输出这些文件。我一直在使用 SSD 在大型 8 处理器、16 核 EC2 单元上并行运行这些作业,通常一次运行 6 个 -8 个。
我会说 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。
我的问题是:我如何从这个盒子中获得最快的处理而不引起这些“写”错误?