Cache
时间:2021-07-18
本文章向大家介绍Cache,主要包括Cache使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package com.shujia.spark.core import org.apache.spark.rdd.RDD import org.apache.spark.storage.StorageLevel import org.apache.spark.{SparkConf, SparkContext} object Demo15Cache { def main(args: Array[String]): Unit = { val conf: SparkConf = new SparkConf() .setMaster("local") .setAppName("cache") val sc = new SparkContext(conf) val studentRDD: RDD[String] = sc.textFile("data/students.txt") val studentsRDD: RDD[(String, String, Int, String, String)] = studentRDD.map(student => { println("studentsRDD处理") val split: Array[String] = student.split(",") val id: String = split(0) val name: String = split(1) val age: Int = split(2).toInt val gender: String = split(3) val clazz: String = split(4) (id, name, age, gender, clazz) }) /** * rdd中默认不报错数据,如果对同一个rdd使用多次,这个rdd会处理多次 * * 持久化级别选择 * 1、如果数据量不大,内存充足----> MEMORY_ONLY * 2、如果数据超过内存限制 ---> MEMORY_AND_DISK_SER (不管压缩不压缩,放内存中都比放磁盘上快,) * * 压缩---> 体积小,压缩和解压需要时间 * * */ //MEMORY_ONLY 默认是MEMORY_ONLY // studentsRDD.cache() studentsRDD.persist(StorageLevel.MEMORY_AND_DISK_SER) //班级人数 val clazzNum: RDD[(String, Int)] = studentsRDD.map(stu => (stu._5, 1)).reduceByKey(_ + _) clazzNum.foreach(println) //性别的人数 val genderNum: RDD[(String, Int)] = studentsRDD.map(stu => (stu._4, 1)).reduceByKey(_ + _) genderNum.foreach(println) //性别人数 val ageNumRDD: RDD[(Int, Int)] = studentsRDD.map(stu => (stu._3, 1)).reduceByKey(_ + _) ageNumRDD.foreach(println) } }
原文地址:https://www.cnblogs.com/lipinbigdata/p/15026081.html
- JSP与JavaBeans
- Log4j官方文档翻译(四、如何在java中输出日志消息)
- 展望未来:使用 PostCSS 和 cssnext 书写 CSS
- Java多线程之Runable与Thread
- 关于 devbridge-autocomplete 插件多选操作的实现方法
- node-sass 安装失败的解决措施
- JavaMelody监控SQL
- 关于jboss的线程问题+java.lang.outofmemoryError
- 《了不起的 nodejs》中 TwitterWeb 案例 bug 解决
- java.lang.ClassNotFoundException与java.lang.NoClassDefFoundError的区别
- 【java开发系列】—— Tomcat编译报错
- java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
- 《像计算机科学家一样思考Java》—— 读后总结
- 记录安装oracle的那些事(三)之oracle Database R2安装
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法