You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark执行Action后DataFrame会被移出内存吗?如何合理使用cache()?

Spark中cache()的缓存机制与DAG执行逻辑
  • 调用cache()后的DataFrame,在首次执行Action时会被持久化到内存(默认存储级别为MEMORY_ONLY),Action执行完成后不会立刻从内存消失。Spark会尽可能将其保留在内存中,供后续操作复用。
  • DataFrame被移出内存的常见条件:
    • 集群内存不足时,Spark会通过LRU(最近最少使用)策略,优先清除不常用的缓存数据(可能转存到磁盘或直接删除)。
    • 主动调用df.unpersist()方法,手动清除该DataFrame的缓存。
    • Spark应用程序终止时,所有缓存的DataFrame都会被释放。
  • 关于后续操作的DAG执行:如果已经对DataFrame调用了cache(),后续对该DataFrame执行的Action或转换操作,不需要重新执行从读取到cache点的整个前置DAG环节,直接复用缓存中的数据即可。只有当缓存被清除(比如内存不足被踢出、主动unpersist),后续操作才会重新执行完整的DAG。

内容的提问来源于stack exchange,提问作者chad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:05:28