spark的缓存

复制代码
object Cache {
  // spark的缓存
  // 1. cache()
  // 2. persist()
  //    cache()是persist()的一种特殊情况,默认只使用内存

  def main(args: Array[String]): Unit = {
    //创建spark
    val conf = new SparkConf().setAppName("Cache").setMaster("local[*]")
    val sc = new SparkContext(conf)

    sc.setLogLevel("WARN")

    // 创建一个包含大量随机数的RDD
    val rdd = sc.parallelize(1 to 10000000).map(_ => scala.util.Random.nextInt(100))

    //定义一个复杂的转换函数
    def complexTransformation(x: Int): Int = {
      var result = x
      for (i <- 1 to 1000) {
        result = result * 2 % 100
      }
      result
    }

    // val rdd1 = rdd.map(complexTransformation)

    // 缓存rdd
    //val rdd1 = rdd.map(complexTransformation).cache()

    // persist
    val rdd1 = rdd.map(complexTransformation).persist(StorageLevel.DISK_ONLY)

    // 第一次触发行动算子,计算并统计消耗的时间
    val startTime = System.currentTimeMillis()
    val rs1 = rdd1.count()
    val endTime = System.currentTimeMillis()
    println(s"第一次计算结果:$rs1,耗时:${endTime - startTime}毫秒")

    // 第一次触发行动算子,计算并统计消耗的时间
    val startTime1 = System.currentTimeMillis()
    val rs2 = rdd1.count()
    val endTime1 = System.currentTimeMillis()
    println(s"第二次计算结果:$rs2,耗时:${endTime1 - startTime1}毫秒")
  }
}
相关推荐
不穿格子的程序员几秒前
Redis篇4——Redis深度剖析:内存淘汰策略与缓存的三大“天坑”
数据库·redis·缓存·雪崩·内存淘汰策略
赵谨言15 分钟前
基于OpenCV的图像梯度与边缘检测研究
大数据·开发语言·经验分享·python
pale_moonlight33 分钟前
十二、大数据数据可视化实战
大数据·信息可视化
拓端研究室39 分钟前
专题:2025医疗行业核心洞察报告:AI医疗、医疗器械、投融资与新药|附380+份报告PDF、数据、可视化模板汇总下载
大数据·人工智能
Jackyzhe44 分钟前
Flink源码阅读:如何生成ExecutionGraph
大数据·flink
跨境卫士情报站1 小时前
亚马逊格局巨变!AI 助手重构购物逻辑,卖家如何顺势突围?
大数据·人工智能·重构·产品运营·跨境电商·防关联
Guheyunyi1 小时前
用电安全管理系统的三大系统架构
大数据·运维·人工智能·安全·架构·系统架构
xinyaokeji2 小时前
从“小生态”到“大生态”,艺龙酒店科技以生态体系驱动产业革新
大数据·科技
AI逐月2 小时前
Git 停止追踪已提交文件问题
大数据·git·elasticsearch
青云交2 小时前
Java 大视界 -- Java 大数据机器学习模型在金融风险管理体系构建与风险防范能力提升中的应用(435)
java·大数据·机器学习·spark·模型可解释性·金融风控·实时风控