Python Dask计算非常慢
我有一个由500万条记录组成的数据框架。我试图通过利用python中的dask数据帧,使用下面的代码来处理它Python Dask计算非常慢,python,python-3.x,performance,dask,dask-distributed,Python,Python 3.x,Performance,Dask,Dask Distributed,我有一个由500万条记录组成的数据框架。我试图通过利用python中的dask数据帧,使用下面的代码来处理它 import dask.dataframe as dd dask_df = dd.read_csv(fullPath) ............ for index , row in uniqueURLs.iterrows(): print(index); results = dask
import dask.dataframe as dd
dask_df = dd.read_csv(fullPath)
............
for index , row in uniqueURLs.iterrows():
print(index);
results = dask_df[dask_df['URL'] == row['URL']]
count = results.size.compute();
但我注意到dask在过滤数据帧方面非常有效,但在.compute()中却没有。因此,如果我去掉计算结果大小的那一行,我的程序就会变得非常快。有人能解释一下吗?我怎样才能使它更快
但是我注意到dask在过滤数据帧方面非常有效,但是
不在.compute()中
您误解了dask.dataframe
的工作原理。行results=dask\u df[dask\u df['URL']==行['URL']]]
对数据集执行无计算。它只存储有关计算的指令,这些指令可以在以后触发
所有计算都只应用于行count=results.size.compute()
。这完全是意料之中的事,因为dask
的工作效率很低
想象一个发电机和一个函数,比如list
,它可以使发电机排气。生成器本身是惰性的,但在被函数调用时会触发操作