从 dask 对象查看 dask 图

Viewing dask graph from a dask object

在 Matthew Rocklin 的 presentation on Dask (2015), he shows an example for viewing the dask graphdask.array:

属性 的表示似乎已经发生了一些变化:

import dask.array as da
x = da.arange(15, chunks=(5,))
print(x.dask)
# <dask.sharedict.ShareDict object at 0x000001FD8869C2E8>

for k, v in x.dask.items():
    print(k)
    print(v)
    print()
# ('arange-367e8f921d6d8a8e494d9e8e9a7f5425', 0)
# (<function arange at 0x000001FD8857D158>, 0, 5, 1, 5, dtype('int32'))
# 
# ('arange-367e8f921d6d8a8e494d9e8e9a7f5425', 1)
# (<function arange at 0x000001FD8857D158>, 5, 10, 1, 5, dtype('int32'))
# 
# ('arange-367e8f921d6d8a8e494d9e8e9a7f5425', 2)
# (<function arange at 0x000001FD8857D158>, 10, 15, 1, 5, dtype('int32'))

如何重现从上面查看 dask.graph 的基本(旧)形式的行为?

您可以通过调用 dictShareDict 对象转换为普通的 dict 对象。

>>> dict(x.dask)

然而,输出将比过去的版本更冗长(如论文中所示。)然而,当前版本在很多方面都更安全,即使它在美学上不那么令人愉悦。