在pandas中压缩numpy数组会导致OoM

时间:2018-03-29 22:16:06

标签: python pandas numpy

我使用Numpy和Pandas来执行大型(130kx30k)和密集(30kx30k)矩阵的矩阵乘法。我现在正试图将结果保存到上游程序使用的镶木地板文件中。我的数据必须采用镶木地板的格式,使用Snappy压缩,并使用模式RowID: Int, Row: Array[Double]。 我有以下代码可以在测试数据集上正常工作,但在我的实际运行中,我使用超过400G的内存,然后用完并且python被“杀死”。我尝试使用del删除未使用的数据框,但这没有帮助。

import pandas as pd
import numpy as np

Z = np.matmul(X, Y)

Zp = pd.DataFrame(Z)
Zp.columns = list(map(str, Zp.columns))

Zpp = pd.DataFrame()
Zpp['id'] = Zp.index
Zpp['ratings'] = Zp.values.tolist() #This line is the problem
Zpp.to_parquet("sampleout.parquet", engine='pyarrow')

0 个答案:

没有答案