dask dataframe.persist() 是不是保留下一个查询的结果?
Posted
技术标签:
【中文标题】dask dataframe.persist() 是不是保留下一个查询的结果?【英文标题】:Does dask dataframe.persist() keep results for the next query?dask dataframe.persist() 是否保留下一个查询的结果? 【发布时间】:2019-08-06 13:39:19 【问题描述】:我试图了解df.persist()
在dask
中的工作原理。我会再次构建相同的表达式,它会重新计算它还是从缓存中加载它?
例如当我这样做时会发生什么:
ddf = dask.dataframe.read_csv('my.csv').shift(1).persist()
print(ddf.sum().compute())
del ddf
ddf = dask.dataframe.read_csv('my.csv').shift(1).persist()
print(ddf.mean().compute())
dask
是读取.csv
并移动两次,还是第二次来自缓存?我需要第二个.persist()
吗?如果它保留在缓存中,我如何强制清理缓存?
【问题讨论】:
【参考方案1】:当您调用persist 时,它会将数据保存在分布式内存中,这样您就无需再次重新计算该部分的计算。
你可以通过删除集合来释放内存,就像你在第 3 行所做的那样。
如果你删除了集合,那么是的,你需要重新持久化中间结果。
https://distributed.dask.org/en/latest/memory.html
【讨论】:
谢谢!我也很清楚,persist 只是在 RAM 中持久化并一直保持到persist() 返回的未来被释放。以上是关于dask dataframe.persist() 是不是保留下一个查询的结果?的主要内容,如果未能解决你的问题,请参考以下文章