是否有可能等到`.persist()`完成缓存中的缓存?

时间:2017-01-28 00:07:51

标签: python dask

由于scala> foo(List(true, false)) java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.Integer at scala.runtime.BoxesRunTime.unboxToInt(BoxesRunTime.java:101) at .foo(<console>:15) ... 31 elided 在后​​台缓存数据,我想知道是否可以等到它完成缓存然后执行以下操作。此外,还有一种方法可以为缓存过程设置进度条吗?非常感谢你

1 个答案:

答案 0 :(得分:3)

是的,您正在寻找的功能恰当地命名为waitprogress

from dask.distributed import wait, progress

progress函数接受任何dask事物并呈现进度条

>>> progress(x)
[XXXXXXX................]  5.2 seconds

如果您在IPython笔记本中,那么进度也是非阻塞的并且使用IPython小部件。如果您使用的是IPython控制台或直接的Python可执行文件,那么progress将被阻止,并且在计算完成之前不会返回。

如果您不想要进度条,或者如果您在Jupyter笔记本中,那么您可能需要单独使用wait函数,该函数将一直阻塞,直到计算结束。

wait(x)

http://distributed.readthedocs.io/en/latest/api.html#distributed.client.wait http://distributed.readthedocs.io/en/latest/api.html#distributed.diagnostics.progress