dask.bag处理数据内存不足

时间:2016-11-01 21:00:26

标签: dask blaze

我正在尝试使用dask bag for wordcount 30GB的json文件,我严格根据官方网站的tutoral:http://dask.pydata.org/en/latest/examples/bag-word-count-hdfs.html

但仍然无效,我的单机是32GB内存和8核CPU。

我的代码如下,我以前处理10GB文件甚至不工作,错误是运行几个小时而没有任何通知jupyter崩溃,我试过Ubuntu和Windows两个系统都是同样的问题。所以我怀疑dask包能否处理数据内存?或者我的代码不正确?

来自http://files.pushshift.io/reddit/comments/

的测试数据
import dask.bag as db
import json
b = db.read_text('D:\RC_2015-01\RC_2012-04')
records = b.map(json.loads)
result = b.str.split().concat().frequencies().topk(10, lambda x: x[1])
%time f = result.compute()
f

1 个答案:

答案 0 :(得分:1)

尝试从单个文件中读取时,在10MB范围内设置块大小以稍微分解。

In [1]: import dask.bag as db

In [2]: b = db.read_text('RC_2012-04', blocksize=10000000)

In [3]: %time b.count().compute()
CPU times: user 1.22 s, sys: 56 ms, total: 1.27 s
Wall time: 20.4 s
Out[3]: 19044534

此外,作为警告,您创建了一个包records,但随后不对其执行任何操作。您可能想删除该行。