大文件导致的内存问题

数据挖掘 Python 熊猫
2022-02-16 00:23:22

我是 Python 新手,当然,我确信我会犯一些错误。这是我的问题,并提前感谢大家的帮助。

我有 2 个文件(一个是 Hive),另一个是CSV合并它们。我有 64GB 内存,我相信CSV我创建的文件大约 25+ GB。

我的问题是当我远程连接时,我看到内存使用率达到 100%,然后我什至无法远程连接我的工作站,它需要硬启动。

我在想的是,当我合并这两个表时,我喜欢保存CSV(比如说 100,000 行)并从内存中清除它并继续另外 100,000 行,追加到它,等等......

我不知道该怎么做,我在谷歌搜索中发现了一些,很可能是要读取大文件,但不确定在我阅读后(合并或合并期间),将每 100K 块写入 aCSV和从内存中清除它。

任何建议都会有所帮助。

1个回答

我猜你正在尝试使用熊猫,如果是这样的话。不要因为你不能为你想要的而这样做。我猜您的操作需要将所有数据加载到内存中,这是不可能的。尝试使用 dask 或一种 sql。我不确定您是否要进行分组等操作,需要同时加载所有数据。如果您可以进行额外的编码并且您的操作并不意味着加载所有数据,例如查找列的最小值,您可以使用生成器并在 pandas 中指定方法的chunk_size 。read_csv但是你必须做额外的编码。你也可以看看这里你也可以看看这里,了解为什么 sql 和 dask 更适合大型操作。