dask 坚持行为不一致

dask persist behavior inconsistent

如果我注释掉这一行,我发现 dask 会出现奇怪的行为

# client = Client(memory_limit='20GB',n_workers=1)  # Connect to distributed cluster and override default

并执行

dd_feature_009a013a_normalized_noneedshift = dd_feature_009a013a_normalized_noneedshift.head(1000000,compute=False).persist()

persist 按预期运行..计算并存储在内存中允许我即时访问结果 但是,如果我取消注释

client = Client(memory_limit='20GB',n_workers=1)  # Connect to distributed cluster and override default

然后

dd_feature_009a013a_normalized_noneedshift = dd_feature_009a013a_normalized_noneedshift.head(1000000,compute=False).persist()
dd_feature_009a013a_normalized_noneedshift = client.persist(dd_feature_009a013a_normalized_noneedshift)

没有做任何事情。立即返回惰性数据帧...当我打开 client = Client(memory_limit='20GB',n_workers=1)?

时,我应该怎么做才能实现相同的行为

当我们用 client.persist 持久化一个对象时,我们会得到一个未来,它指的是计算的结果。计算完成后,结果将根据需要存储在一个或多个工作人员中。 运行 client.persist 现有的未来将返回另一个未来...因此引用对另一个计算的引用,这可能是不必要的。

要获得未来的结果,可以 运行 .result() 未来本身。这将阻止进一步的命令,直到计算出未来并返回结果。