【问题标题】:How does caching in Spark works [duplicate]Spark中的缓存如何工作[重复]
【发布时间】:2021-04-24 03:07:52
【问题描述】:

我正在努力掌握 Spark 中缓存的用例。我将这个概念理解为“它只将 RDD 保存到内存中”,但是一旦执行操作,这不是已经完成了吗?

假设我读取了一个文本文件并将 RDD 命名为“df”,然后运行 ​​count() 作为我的操作。通过这样做,我已经将我的 RDD 保存在内存中,并且可以稍后调用,那么为什么或何时需要缓存我的 RDD?是否在使用过滤器的情况下(但过滤器返回一个可以存储为新变量的新RDD)?

感谢您的帮助:)

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql rdd


    【解决方案1】:

    当您调用一个动作时,RDD 确实会进入内存,但该内存将在该动作完成后被释放。通过缓存 RDD,它将被强制持久化到内存(或磁盘,具体取决于您如何缓存它)上,这样它就不会被擦除,并且可以重复使用以加快对同一 RDD 的未来查询。

    过滤器是不同的,因为过滤器是一种转换,而不是一个动作。当然你也可以缓存一个过滤后的 RDD,但它只会在过滤后的 RDD 上调用一个动作后才会被持久化到内存中。

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 2016-02-15
      • 2014-10-06
      相关资源
      最近更新 更多