我无法使用python-Dask对大型数据集进行计算。我的计算机崩溃了。
我有一台具有4GB RAM并运行Linux Debian的计算机。我正在尝试从Kaggle竞赛(ElO Merchant竞赛)中加载一些文件,当我尝试加载并获取模糊数据框的形状时,计算机崩溃。
我仅在笔记本电脑上运行代码。我选择dask是因为它可以处理大型数据集。我还想知道如果Dask不适合内存,Dask是否能够将计算移到我的硬盘上?如果是这样,我是否需要激活此类设备或自动运行?如果我需要手动进行操作,该怎么办?如果有关于此的教程,那也很好。
我有250GB固态硬盘作为我的硬盘。因此,大型数据集将有空间适合磁盘。
在这方面请帮助我。我的代码如下。
谢谢
迈克尔
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数组的形状并运行其余代码(由于不相关,在此未显示)
答案 0 :(得分:0)
我找到了一种方法。 在这里:
print("(%s,%s)" % (historical_transactions.index.count().compute(),len(historical_transactions.columns)))
第一个输出值是行,第二个输出值是列数。
谢谢
迈克尔