使用DataFrame与ask.multiprocessing不并行执行

时间:2016-11-27 17:14:53

标签: dask

为什么dask剂量不能使用所有可用的核心?

我正在运行此代码

if (edi < esi) { // am I supposed to change edi and esi to local variable names?
   uint32_t variable1; 
   return ___; // what am I supposed to return?
}

我希望最后一行

import pandas as pd
import numpy as np
for year in range(2000, 2005):
    #i have change days 
    idx = pd.date_range(str(year), str(year + 1), freq='d', closed='left')
    #to seconds , that created file of 1.3G each
    #idx = pd.date_range(str(year), str(year + 1), freq='s', closed='left')    

    pd.DataFrame({'A': np.random.randn(len(idx)), 
                  'B': np.random.randint(len(idx))},
                 index=idx).to_csv('{0}.csv'.format(year), index_label='date')


import dask.dataframe as dd

df = dd.read_csv('*.csv').set_index('date')

import dask.multiprocessing
df.count().compute(get=dask.multiprocessing.get)

将在我的所有核心(4核心)上运行 相反,我发现只有一个核心在使用

实际上正在运行

df.count().compute(get=dask.multiprocessing.get)

会更有效率 难道我做错了什么?为什么这个代码不能在所有内核上运行? 为什么第二种方法(使用零参数计算)更有效? dask不知道做正确的事吗?并选择最佳时间安排?

注意: 我用过这一行

df.count().compute()

创建5 * 1.5G文件大小

我发布的样本使用

`idx = pd.date_range(str(year), str(year + 1), freq='s',` closed='left') 

创建一个非常小的文件

0 个答案:

没有答案