COMPUTE()在Dask中做什么?
问题描述
我是新接触DASK的,我不了解COMPUTE()方法在DASK中到底做什么?它是在调用对象的地方打印对象的方法吗?我已经阅读了其网站上的文档,但不确定是否理解了术语"具体的价值"和"懒惰的任务"。
您可以通过调用.Compute()方法或dask.Compute(...)将任何Dask集合转换为具体的值功能。此函数将一直阻塞,直到计算完成,从惰性Dask集直接转到本地内存中的具体值。
我所说的"它是在调用对象的地方打印对象的方法吗?"就是,当我创建一个Dask对象并在Spyder控制台中调用它时,它会导致dask.array<arange, shape=(11,), dtype=int32, chunksize=(5,)>
,而当我对它调用计算()方法时,它会打印该对象。
x对象是通过以下代码创建的:
x = da.arange(11, chunks=5)
解决方案
有关此主题的简单介绍,请参阅 https://towardsdatascience.com/why-every-data-scientist-should-use-dask-81b2b850e15b (查找使用DASK进行并行处理一章)。
第一步是准备计算图:
computation_graph = sum_list([square(i) for i in items])
上述说明仅创建了如何执行
计算,但尚未开始实际计算。
下面是下一条指令:
print("Result", computation_graph.compute())
开始计算的,因为它在打印内 说明,我们还演示了计算是如何运行的。
因此使用Dask通常需要4个步骤:
- 获取(读取)源数据。
- 准备应计算的配方。
- 开始计算(仅执行计算)。
- "消费"计算结果(完成后)。
相关文章