有效地读取巨大的 csv 文件?

Posted

技术标签:

【中文标题】有效地读取巨大的 csv 文件?【英文标题】:Reading huge csv files efficiently? 【发布时间】:2015-11-13 09:24:03 【问题描述】:

我知道如何使用 pandas 读取具有 CSV 扩展名的文件。读取大文件时出现内存不足错误。该文件是 380 万行和 640 万列的文件。大种群文件中主要有基因组数据。

我该如何克服这个问题,什么是标准做法以及如何为此选择合适的工具。我可以用 pandas 处理这么大的文件吗?还是有其他工具?

【问题讨论】:

您需要阅读整个文件吗?您可以将chunksize 参数传递给read_csv 并处理块 也许可以帮助this question。 【参考方案1】:

您可以使用 Apache Spark 分发 csv 文件 https://github.com/databricks/spark-csv 的内存处理。看看ADAM's 分布式基因组数据处理的方法。

【讨论】:

【参考方案2】:

可以使用pythoncsv模块

with open(filename, "r") as csvfile:
    datareader = csv.reader(csvfile)
    for i in datareader:
        #process each line
        #You now only hold one row in memory, instead of your thousands of lines

【讨论】:

以上是关于有效地读取巨大的 csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章

有效地将数据从 CSV 读取到具有多个分隔符的数据框中

从巨大的 CSV 文件中读取随机行

用 matlab 读取巨大的 .csv 文件 - 文件组织得不好

R读取一个巨大的csv

有效地将最后 'n' 行 CSV 读入 DataFrame

读取带有双引号和单引号变量的 CSV 文件