187 RDD的缓存

简介: 187 RDD的缓存

Spark速度非常快的原因之一,就是在不同操作中可以在内存中持久化或缓存个数据集。当持久化某个RDD后,每一个节点都将把计算的分片结果保存在内存中,并在对此RDD或衍生出的RDD进行的其他动作中重用。这使得后续的动作变得更加迅速。RDD相关的持久化和缓存,是Spark最重要的特征之一。可以说,缓存是Spark构建迭代式算法和快速交互式查询的关键。

RDD缓存方式

RDD通过persist方法或cache方法可以将前面的计算结果缓存,但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供后面重用。

通过查看源码发现cache最终也是调用了persist方法,默认的存储级别都是仅在内存存储一份,Spark的存储级别还有好多种,存储级别在object StorageLevel中定义的。

缓存有可能丢失,或者存储存储于内存的数据由于内存不足而被删除,RDD的缓存容错机制保证了即使缓存丢失也能保证计算的正确执行。通过基于RDD的一系列转换,丢失的数据会被重算,由于RDD的各个Partition是相对独立的,因此只需要计算丢失的部分即可,并不需要重算全部Partition。

目录
相关文章
|
1月前
|
存储 缓存 分布式计算
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
42 4
|
6月前
|
存储 缓存 分布式计算
Spark RDD持久化与缓存:提高性能的关键
Spark RDD持久化与缓存:提高性能的关键
|
存储 缓存 分布式计算
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(下)
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(下)
150 0
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(下)
|
存储 缓存 分布式计算
RDD 的缓存-缓存级别 | 学习笔记
快速学习 RDD 的缓存-缓存级别
318 0
RDD 的缓存-缓存级别 | 学习笔记
|
缓存 分布式计算 算法
RDD 的缓存_缓存的意义_结论 | 学习笔记
快速学习 RDD 的缓存_缓存的意义_结论
RDD 的缓存_缓存的意义_结论 | 学习笔记
|
数据采集 缓存 分布式计算
RDD 的缓存_缓存的意义_过程代码 | 学习笔记
快速学习 RDD 的缓存_缓存的意义_过程代码
RDD 的缓存_缓存的意义_过程代码 | 学习笔记
|
缓存 分布式计算 大数据
RDD 的缓存_缓存的意义_案例介绍 | 学习笔记
快速学习 RDD 的缓存_缓存的意义_案例介绍
RDD 的缓存_缓存的意义_案例介绍 | 学习笔记
|
存储 缓存 分布式计算
RDD 的缓存_缓存的 API | 学习笔记
快速学习 RDD 的缓存_缓存的 API
RDD 的缓存_缓存的 API | 学习笔记
|
缓存 分布式计算 大数据
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(中)
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(中)
212 0
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(中)
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
74 6