有效地读取巨大的 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 文件?的主要内容,如果未能解决你的问题,请参考以下文章