Spark RDD的cache

作者: 不愿透露姓名的李某某 | 来源:发表于2019-07-04 21:59 被阅读0次

1.什么时候进行cache

(1)要求计算速度快

(2)集群的资源要足够大

(3)重要:cache的数据会多次触发Action

(4).先进行过滤,将过滤后的精准的数据存放到内存中再执行操作

//第一个参数,放到磁盘

//第二个参数,放到内存

//第三个参数,磁盘当中的数据不是以java对象的方式保存

//第死个参数,内存当中的数据是以java对象的方式保存

val MEMORY_AND_DISK =new StorageLevel(true,true,false,true)

OFF_HEAP:堆外内存(Tachyon,分布式内存存储系统)

spark可以将数据专门存放到spark提供的文件存储系统中

cache执行流程

当我们在spark-shell执行操作如下

            当我们第一次使用count求文件的长度时是很慢的,但第二次第三次执行count时速度会快很多,原因是cache将文件缓存在Executor上,当我们第二次调用它时会去内存上找数据。

            但是我们的内存也不是无限大的,不可能存取太多的数据,当我们后面还要使用cache时,而内存已经存取很多不用的数据时可以使用unpersist清理内存

//Cached Partitions代表的是分区

//Fraction Cached代表的内存缓存文件的程度

cache的页面显示 重复使用count方法时所用的时间越来越少

注:该方法既没有生成新的RDD,也没有触发任务执行,只会标记该RDD的分区对应的数据(第一次触发Action)放入到内存

相关文章

网友评论

    本文标题:Spark RDD的cache

    本文链接:https://www.haomeiwen.com/subject/tlsdhctx.html