我有一个大约5GB压缩文件(32GB未压缩)和gzip,大约有200多万行。我有下面的pandas代码通过块并应用一些处理并迭代保存为一个csv。我不明白为什么这会在它完成之前逐渐耗尽我的所有RAM(32GB RAM EC2)。我假设我只是通过保存磁盘来避免使用RAM。我做错了什么或误解了这个过程?有没有更好的方法来做到这一点?
chunker = pd.read_table('filename.txt.gz', compression='gzip',
delim_whitespace=True, chunksize=10000, iterator=True, header=None)
for chunk in chunker:
process chunk
with open(fout, 'a') as filename:
chunk.to_csv(filename)
filename.close()
答案 0 :(得分:0)
您可以尝试以下方法:
按low_memory = False
chunker = pd.read_table('filename.txt.gz', compression='gzip',\
low_memory = False, delim_whitespace=True, chunksize=10000,\
iterator=True, header=None)
并且还增加了操作系统设置的每个进程的内存限制。