compute() 在 dask 中做啥?

Posted

技术标签:

【中文标题】compute() 在 dask 中做啥?【英文标题】:what does compute() do in dask?compute() 在 dask 中做什么? 【发布时间】:2019-11-05 14:01:13 【问题描述】:

我是 dask 的新手,不明白 compute() 方法在 dask 中究竟做了什么?它是一种打印它调用的对象的方法吗?我已阅读其网站上的文档,但不确定我是否理解“具体价值”和“懒惰的 dask”这两个术语。

您可以通过调用 .compute() 方法或 dask.compute(...) 函数将任何 dask 集合转换为具体值。此函数将阻塞直到计算完成,直接从惰性 dask 集合到本地内存中的具体值。

我的意思是说“它是一种打印调用对象的方法吗?”就是说,当我创建一个 dask 对象并在 spyder 控制台中调用它时,它会导致 dask.array<arange, shape=(11,), dtype=int32, chunksize=(5,)> 并且当我在其上调用 compute() 方法时,它会打印该对象。

x 对象已通过以下代码创建:

x = da.arange(11, chunks=5)

【问题讨论】:

当你创建一个对象时,它只是一个蓝图,直到你调用.compute()。也就是将工作分配给所有工作人员并调用实际函数或生成具体值的时候。 【参考方案1】:

可以在以下位置找到对该主题的简单介绍 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个步骤:

获取(读取)源数据。 准备应计算的配方。 开始计算(就这样执行compute)。 “消费”计算结果(完成后)。

【讨论】:

以上是关于compute() 在 dask 中做啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何查看Dask Compute任务的进度?

为什么__getitem__没有被dask系列实现?

Dask 到展平字典列

startMonitoringFromRegion - 在 didEnterRegion 中做啥?

:: 在 PostgreSQL 中做啥? [复制]

是啥! (感叹号)在 FreeMarker 中做啥?