使用Dask计算时内存耗尽或Dask Delayed

时间:2017-07-13 20:45:40

标签: dask

我试图在一个数据帧中处理几个主题的数据。每个主题有> 30个主题和14个计算它是一个大型数据集,但是在调度程序节点上的任何超过5个内存都没有运行任何与调度程序相同的节点上的工作程序,它有128GB的内存?任何想法我如何解决这个问题或者如果我做错了什么?代码吼叫。

def channel_select(chn,sub):

    subject = pd.DataFrame(df.loc[df['sub'] == sub])
    subject['s0'] = subject[chn]
    val = []
    for x in range(13):
        for i in range(len(subject)):
            val.append(subject['s0'].values[i-x])
        name = 's' + str(x+1)
        subject[name] = val
        val = []
    return subject

subs = df['sub'].unique()
subs = np.delete(subs, [34,33])

for s in subs:
    for c in chn:
        chn_del.append(delayed(channel_select)(c,subs[s]))

results = e.persist(pred)

我显示的代码可以运行所有主题,但一次只能运行5次而且内存不足

2 个答案:

答案 0 :(得分:1)

您告诉计算机要保留近1,000 GB的内存。

但你已经知道了(:

答案 1 :(得分:0)

如上所述,每次调用channel_select都会创建并将数据帧存储在调度程序内存中,其中30个主体每次调用14次,2gb数据帧...是的,你可以算一下尝试抓取多少内存。