在内存中操作大量CSV数据

本文关键字:CSV 数据 操作 内存 | 更新日期: 2023-09-27 18:05:28

我正在尝试操作导入到数据表中的大数据集(1000万条记录)。我不认为datatable是在内存中操作大量数据的最有效的方式。有人有更好的方法吗?我想做的是采取CSV文件的内容,操纵一些数据,并将结果重新导出到另一个CSV文件。

TIA,保罗

在内存中操作大量CSV数据

DataTable将需要立即将整个内容加载到内存中。不要那样做。相反,将输入和输出csv文件都视为流。这是一个非常好的CSV阅读器,它允许您一次读取和处理一条记录:

快速CSV阅读器

http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader

您希望同时打开源文件以供读取,同时打开目标文件以供写入。当您从源文件中读取一行时,处理它,然后写入目标文件。内存中不应该超过一行或几行。这将大大提高内存使用和性能。

为了获得更高的性能,您可以使用单独的读/写线程和生产者/消费者队列,但这需要更多的管理来确保队列不会饱和,并且根据情况和相对的读/处理/写性能,这种更复杂的解决方案可能根本不会提高性能。