COMPUTE()在Dask中做什么?

2022-04-14 00:00:00 python 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个步骤:

  • 获取(读取)源数据。
  • 准备应计算的配方。
  • 开始计算(仅执行计算)。
  • "消费"计算结果(完成后)。

相关文章