当前位置: 首页 > web >正文

spark缓存-persist

存储级别指定

persist:可以通过传入 StorageLevel 参数来指定不同的持久化级别。常见的持久化级别有:

MEMORY_ONLY:将 RDD 以 Java 对象的形式存储在 JVM 的内存中。若内存不足,部分分区将不会被缓存,需要时会重新计算。

MEMORY_AND_DISK:优先把 RDD 以 Java 对象的形式存储在 JVM 的内存中。若内存不足,会把多余的分区存储到磁盘上。

DISK_ONLY:将 RDD 的数据存储在磁盘上。

MEMORY_ONLY_SER:将 RDD 以序列化的 Java 对象形式存储在内存中,相较于 MEMORY_ONLY,序列化后占用的内存空间更小,但读取时需要进行反序列化操作,会带来一定的性能开销。

MEMORY_AND_DISK_SER:优先将 RDD 以序列化的 Java 对象形式存储在内存中,内存不足时存储到磁盘上。

cache:不能指定存储级别,它固定使用 MEMORY_ONLY 存储级别。

​
import org.apache.spark.storage.StorageLevel
import org.apache.spark.{SparkConf, SparkContext}object Cache {//Spark的缓存//1.cache()//2.persist()//cache()是persist()的一种特殊情况def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("Cache").setMaster("local[*]")val sc = new SparkContext(conf)sc.setLogLevel("WARN")//创建一个包含大量随机数的RDDval rdd = sc.parallelize(1 to 1000000).map( _=> scala.util.Random.nextInt(100))//定义一个复杂的转换函数def complexTransformation(x:Int): Int = {var result=xfor(i<-1 to 1000){result=result*2%100}result}//val rdd1=rdd.map(complexTransformation)//缓存rdd//val rdd1=rdd.map(complexTransformation).cache()//persistval rdd1=rdd.map(complexTransformation).persist(StorageLevel.DISK_ONLY)//第一次触发行动算子,计算并统计消耗时间val startTime=System.currentTimeMillis()val rs1=rdd1.collect()val endTime=System.currentTimeMillis()println("第一次计算消耗时间:"+(endTime - startTime)+"毫秒")//第二次触发行动算子,计算并统计消耗时间val startTime1=System.currentTimeMillis()val rs2=rdd1.collect()val endTime1=System.currentTimeMillis()println("第二次计算消耗时间:"+(endTime1 - startTime1)+"毫秒")}}​

http://www.xdnf.cn/news/4899.html

相关文章:

  • allure生成测试报告(搭配Pytest、allure-pytest)
  • 【高并发】Celery + Redis异步任务队列方案提高OCR任务时的并发
  • Missashe高数强化学习笔记(随时更新)
  • [Windows] 能同时打开多个图片的图像游览器JWSEE v2.0
  • 霸王茶姬微信小程序自动化签到系统完整实现解析
  • 大模型应用开发之模型架构
  • vue3 ts 写一个滑动选择的日期选择器组件
  • 在Mac M1/M2上使用Hugging Face Transformers进行中文文本分类(完整指南)
  • 代码随想论图论part06冗余连接
  • 从0开始学习大模型--Day04--大模型的框架以及基本元素
  • JavaSE核心知识点02面向对象编程02-04(包和导入)
  • 运用fmpeg写一个背英文单词的demo带翻译
  • 前台--Android开发
  • 5.9-selcct_poll_epoll 和 reactor 的模拟实现
  • 高效对接:金蝶采购申请单集成钉钉案例解析
  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice 在线打开Word文件,并用前端对话框实现填空填表
  • RAG vs 传统生成模型:核心差异与适用场景
  • ‌云原生CAE软件
  • 学习搭子,秘塔AI搜索
  • 基于大模型预测的足月胎膜早破行阴道分娩全流程研究报告
  • 图像泊松融合(convpyr_small版本)
  • 单调栈所有模版型题目(1)
  • Maven 处理依赖冲突
  • 【IDEA_Maven】(进阶版)永久性的更改IDEA中每个项目所依赖的Maven默认配置文件及其仓库路径
  • 学习心得《How Global AI Policy and Regulations Will Impact Your Enterprise》Gartner
  • 七、Hadoop 历史追踪、数据安全阀与 MapReduce初体验
  • WORD压缩两个免费方法
  • Java 集合体系深度解析面试篇
  • Java如何获取电脑分辨率?
  • 虚拟文件系统