在python上使用Dask对大型数据集进行计算时,计算机崩溃



我无法使用python Dask在大型数据集上进行计算。我的电脑坏了。

我有一台4GB RAM的电脑,运行Linux Debian。我正在尝试加载Kaggle竞争对手(ElO Merchant竞争对手)的一些文件。当我尝试加载并获得dask数据帧的形状时,计算机崩溃了。

我只在我的笔记本电脑上运行代码。我选择dask是因为它可以处理大型数据集。我还想知道,如果内存不足,Dask是否能够将计算转移到我的硬盘上?如果是的话,我需要激活这样的东西还是dask自动执行?如果我需要手动操作,我该怎么做?如果有关于这方面的教程,那也太好了。

我有250GB固态硬盘作为我的硬盘。因此,将有空间将大型数据集放入磁盘。

请在这方面帮助我。我的代码如下。

谢谢

Michael

import dask.dataframe as dd
from dask.distributed import Client
from sklearn.externals.joblib import parallel_backend
client = Client(processes=False)
merchant = dd.read_csv('/home/michael/Elo_Merchant/merchants.csv')
new_merchant_transactions = dd.read_csv('/home/michael/Elo_Merchant/new_merchant_transactions.csv')
historical_transactions = dd.read_csv('/home/michael/Elo_Merchant/historical_transactions.csv')
train = dd.read_csv('/home/michael/Elo_Merchant/train.csv')
test = dd.read_csv('/home/michael/Elo_Merchant/test.csv')
merchant.head()
merchant.compute().shape
merchant_headers = merchant.columns.values.tolist()
for c in range(len(merchant_headers)): 
print(merchant_headers[c])
print('--------------------')
print("{}".format(merchant[merchant_headers[c]].value_counts().compute()) + 'n')
print("Number of NaN values {}".format(merchant[merchant_headers[c]].isnull().sum().compute()) + 'n')
historical_transactions.head()
historical_transactions.compute().shape #after computing for a few minutes computer restarts.

我希望它作为代码运行,给我dask数组的形状,并运行代码的其余部分(我没有在这里显示,因为它不相关)

我找到了获得它的方法。这是:

print("(%s,%s)" % (historical_transactions.index.count().compute(),len(historical_transactions.columns)))

第一个输出值是行数,而第二个输出值则是列数。

感谢

Michael

最新更新