【发布时间】:2019-05-24 04:31:55
【问题描述】:
我无法使用 python-Dask 对大型数据集进行计算。我的电脑崩溃了。
我有一台内存为 4GB 并运行 Linux Debian 的计算机。我正在尝试从 Kaggle 比赛(ElO Merchant Competition)加载一些文件,当我尝试加载并获取 dask 数据框的形状时,计算机崩溃了。
我只在我的笔记本电脑上运行代码。我选择了 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 数组的形状并运行其余代码(我没有在这里展示,因为它不相关)
【问题讨论】:
-
试试
merchant.compute().shape->merchant.shape.compute()或len(merchant)?你应该看看compute()做了什么。
标签: python-3.x dask