【问题标题】: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() 吗?如果它保留在缓存中,我如何强制清理缓存?

【问题讨论】:

    标签: python pandas dataframe bigdata dask


    【解决方案1】:

    当您调用persist 时,它会将数据保存在分布式内存中,这样您就无需再次重新计算该部分的计算。

    你可以通过删除集合来释放内存,就像你在第 3 行所做的那样。

    如果你删除了集合,那么是的,你需要重新持久化中间结果。

    https://distributed.dask.org/en/latest/memory.html

    【讨论】:

    • 谢谢!我也很清楚,persist 只是在 RAM 中持久化并一直保持到persist() 返回的未来被释放。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2021-07-12
    • 2020-06-23
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多