spark的缓存

本文介绍了Spark中的缓存机制,包括`cache`和`persist`函数的使用,以及RDD的不同缓存级别。`cache`等同于`persist(StorageLevel.MEMORY_ONLY)`,两者都是为了避免重复计算,提高性能。同时,文章详细解析了StorageLevel类,阐述了12种缓存级别对应的存储选项,如是否使用内存、硬盘、堆外内存和反序列化,以及备份份数。
摘要由CSDN通过智能技术生成

spark的缓存

缓存的作用,无论是在传统程序,还是分布式程序,缓存的作用主要针对频繁操作的数据,下次操作的时候直接读取。spark亦是。Spark 支持把数据集拉到集群内的内存缓存中。当要重复访问时这是非常有用的


cache:定义

用MEMORY_ONLY储存级别对RDD进行缓存,其内部实现是调用persist()函数的。官方文档定义:
Persist this RDD with the default storage level (MEMORY_ONLY)

  • 函数原型
def cache() : this.type 
  • 实例
scala> var data = sc.parallelize(List(1,2,3,4))  
data: org.apache.spark.rdd.RDD[Int] = 
  ParallelCollectionRDD[44] at parallelize at <console>:12 

scala> data.getStorageLevel  
res65: org.apache.spark.storage.StorageLevel =  
  StorageLevel(false, false, false, false, 1)  

scala> data.cache  
res66: org.apache.spark.rdd.RDD[Int] =  
  ParallelCollectionRDD[44] at parallelize at <console>:12 

scala> data.getStorageLevel  
res67: org.apache.spark.storage.StorageLevel =  
  StorageLevel(false, true, false, true, 1)

我们先是定义了一个RDD,然后通过getStorageLevel函数得到该RDD的默认存储级别,这里是NONE。然后我们调用cac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值