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()
未来本身。这将阻止进一步的命令,直到计算出未来并返回结果。
如果我注释掉这一行,我发现 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()
未来本身。这将阻止进一步的命令,直到计算出未来并返回结果。