如何查看 Dask 计算任务的进度?

How to see progress of Dask compute task?

我想在 Jupyter notebook 上看到一个进度条,而我正在 运行 使用 Dask 的计算任务,我正在计算大型 csv 文件中 id 列的所有值 + 4GB,有什么想法吗?

import dask.dataframe as dd

df = dd.read_csv('data/train.csv')
df.id.count().compute()

如果您使用的是单机调度程序,请执行以下操作:

from dask.diagnostics import ProgressBar
ProgressBar().register()

http://dask.pydata.org/en/latest/diagnostics-local.html

如果您使用的是分布式调度程序,请执行以下操作:

from dask.distributed import progress

result = df.id.count.persist()
progress(result)

或者只使用控制面板

http://dask.pydata.org/en/latest/diagnostics-distributed.html

This resource 提供了两种情况(本地和分布式)的完整代码示例以及有关使用 Dask 仪表板的更多详细信息。

请注意,在 Jupyter 笔记本中工作时,您可能必须将 ProgressBar().register() 调用和您要跟踪的计算调用(例如 df.set_index('id').persist())分开到两个单独的单元格中,以便进度条实际显示出现。

执行:

不要做: