spark的缓存

[复制链接]
发表于 2025-9-3 08:43:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. object Cache {
  2.   // spark的缓存
  3.   // 1. cache()
  4.   // 2. persist()
  5.   //    cache()是persist()的一种特殊情况,默认只使用内存
  6.   def main(args: Array[String]): Unit = {
  7.     //创建spark
  8.     val conf = new SparkConf().setAppName("Cache").setMaster("local[*]")
  9.     val sc = new SparkContext(conf)
  10.     sc.setLogLevel("WARN")
  11.     // 创建一个包含大量随机数的RDD
  12.     val rdd = sc.parallelize(1 to 10000000).map(_ => scala.util.Random.nextInt(100))
  13.     //定义一个复杂的转换函数
  14.     def complexTransformation(x: Int): Int = {
  15.       var result = x
  16.       for (i <- 1 to 1000) {
  17.         result = result * 2 % 100
  18.       }
  19.       result
  20.     }
  21.     // val rdd1 = rdd.map(complexTransformation)
  22.     // 缓存rdd
  23.     //val rdd1 = rdd.map(complexTransformation).cache()
  24.     // persist
  25.     val rdd1 = rdd.map(complexTransformation).persist(StorageLevel.DISK_ONLY)
  26.     // 第一次触发行动算子,计算并统计消耗的时间
  27.     val startTime = System.currentTimeMillis()
  28.     val rs1 = rdd1.count()
  29.     val endTime = System.currentTimeMillis()
  30.     println(s"第一次计算结果:$rs1,耗时:${endTime - startTime}毫秒")
  31.     // 第一次触发行动算子,计算并统计消耗的时间
  32.     val startTime1 = System.currentTimeMillis()
  33.     val rs2 = rdd1.count()
  34.     val endTime1 = System.currentTimeMillis()
  35.     println(s"第二次计算结果:$rs2,耗时:${endTime1 - startTime1}毫秒")
  36.   }
  37. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表