Spark缓存策略

这里写图片描述

持久化的单位是partition,2是指partition的备份数,不是指持久化到几个节点上

package com.bjsxt.spark.persist

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.storage.StorageLevel

object CacheTest {
  def main(args: Array[String]): Unit = {

    val conf = new SparkConf()
      .setAppName("CacheTest")
      .setMaster("local")

      val sc = new SparkContext(conf)
      sc.setCheckpointDir("G://checkpoint")

      var liensRDD  = sc.textFile("userLog")
      /**
       * 1、cache的返回值  必须赋值给一个新的变量  , 在其他的job中直接使用这个变量就可以
       * 2、cache是一个懒执行,必须有action类的算子触发
       * 3、cache算子的后面不能立即添加action类算子
       * 
       * 
       * cache默认会将rdd中的数据持久化到内存中
       * 
       * persist和cache有什么区别?
       * cache是persist的一个简化版   persist里面可以手动指定其他的持久化级别   cache = persists(StorageLevel.MEMORY_ONLY)
       * 
       */
//      liensRDD = liensRDD.cache()
      liensRDD.checkpoint()
      liensRDD = liensRDD.persist(StorageLevel.MEMORY_ONLY)


      val startTime = System.currentTimeMillis()
      val count1 = liensRDD.count
      val endTime = System.currentTimeMillis()
      println("总共耗时:" + (endTime - startTime) + "ms\t Count:" + count1)


      val startTime1 = System.currentTimeMillis()
      val count2 = liensRDD.count
      val endTime1 = System.currentTimeMillis()
      println("总共耗时:" + (endTime1 - startTime1) + "ms\t Count:" + count2)
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值