spark之缓存

本文介绍了Spark中的缓存机制,包括cache()和persist()的使用注意事项,如它们按partition持久化、懒执行特性及如何通过变量访问。同时讨论了在长依赖链情况下,如何利用checkpoint进行优化,包括其执行流程,以及如何通过预先cache()提高效率。
摘要由CSDN通过智能技术生成

1、cache()和persist()

cache()和persist()注意问题:
1.cache()和persist()持久化单位是partition,cache()和persist()是懒执行算子,需要action算子触发执行。
2.对一个RDD使用cache或者persist之后可以赋值给一个变量,下次直接使用这个变量就是使用的持久化的数据。也可以直接对RDD进行cache或者persist不赋值给一个变量
3.如果采用第二种方式赋值给变量的话,后面不能紧跟action算子。
4.cache()和persist()的数据在当前application执行完成之后会自动清除。

def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
    conf.setAppName("cacheAndPersist")
    conf.setMaster("local")
    val sc = new SparkContext(conf)
    var lines = sc.textFile("./data/persistData.txt")
    
//    lines.cache()
    lines = lines.persist(StorageLevel.MEMORY_ONLY)
    val startTime1 = System.currentTimeMillis()
    val count1 = lines.count()
    val endTime1 = System.currentTimeMillis()
    println("count1 = "+count1+",time = "+(endTime1-startTime1)+"ms
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值