代码之家  ›  专栏  ›  技术社区  ›  Markus

在使用df.cache()之后是否必须使用df.unpersist()?[副本]

  •  0
  • Markus  · 技术社区  · 6 年前

    必须使用吗 df.unpersist() 使用后 df.cache() 释放缓存内存? 如果我将数据帧存储在缓存中而不进行反持久化,那么代码运行得很快。但是,当我使用 df.unpersist()。 .

    1 回复  |  直到 6 年前
        1
  •  2
  •   stefanobaghino    6 年前

    它不是 强制性的 但是,如果您有一个长期的发展,并且您希望释放不再需要的资源,那么强烈建议您这样做。无论如何,Spark会在LRU基础上为您管理这些;引自 the docs :

    spark会自动监视每个节点上的缓存使用情况,并以最近使用的方式删除旧的数据分区。

    这个 unpersist 方法 does this by default 但是考虑到你可以 不坚定的 通过使用 blocking = false 参数。

    df.unpersist(false) // unpersists the Dataframe without blocking
    

    这个 不坚定的 方法已记录在案 here 对于火花2.3.0。