理解Spark-RDD持久化

659 篇文章 1573 订阅 ¥9.90 ¥99.00
536 篇文章 1680 订阅 ¥9.90 ¥99.00
427 篇文章 33 订阅
本文介绍了Spark中RDD的持久化功能,通过persist()或cache()方法实现数据集的内存缓存,提升后续操作速度。缓存是容错的,丢失分区时会自动重算。RDD可设置不同存储级别,如MEMORY_ONLY、MEMORY_AND_DISK等,根据内存使用和CPU效率选择。Python中使用Pickle序列化。推荐在计划重用的RDD上调用persist。Spark还会在必要时自动保留中间数据。要删除持久化数据,可使用RDD.unpersist()方法。
摘要由CSDN通过智能技术生成

1.Spark中最重要的功能之一是跨操作在内存中持久化(或缓存)数据集。当数据持久保存在RDD时,每个节点都会存储它在内存中计算的任何分区,

并在该数据集(或从中派生的数据集)的其他操作中重用它们。这使得特性函数的Action更快(通常超过10倍)。缓存是迭代算法和快速交互式使用的关键工具。

 

2.可以使用persist()或cache()方法标记要保留的RDD。 第一次在动作中计算它,它将保留在节点的内存中。

 Spark的缓存是容错的 - 如果丢失了RDD的任何分区,它将使用最初创建它的转换自动重新计算。

 

3.每个持久化RDD可以使用不同的存储级别进行存储。

例如,允许您将数据集保留在磁盘上,将其保留在内存中,但作为序列化Java对象(以节省空间),跨节点复制它。

通过将StorageLevel对象(Scala,Java,Python)传递给persist()来设置这些级别。

cache()方法是使用默认存储级别的简写,即StorageLevel.MEMORY_ONLY(在内存中存储反序列化的对象)。

完整的存储级别是:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨鑫newlfe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值