微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark 中的缓存是如何工作的

如何解决Spark 中的缓存是如何工作的

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

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

谢谢你的帮助:)

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。