CheckPoint
时间:2021-07-18
本文章向大家介绍CheckPoint,主要包括CheckPoint使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package com.shujia.spark.core import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.rdd.RDD object Demo16CheckPoint { def main(args: Array[String]): Unit = { val conf: SparkConf = new SparkConf() .setMaster("local") .setAppName("cache") val sc = new SparkContext(conf) //指定checkpoint 保存的路径 sc.setCheckpointDir("data/checkpoint") 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) }) /** * checkpoint 流程 * 1、当第一个job 执行完成之后会从后面前回溯,如果rdd调用了checkpoint方法会被打上一个标记 * 2、另启动一个job重新计算这个rdd的数据,将rdd的数据保存到hdfs * 3、后续的job 就可以直接使用checkpoint中的数据 * * 优化:可以在checkpoint执行进行cahce * * checkpoint主要用在Spark streaming */ studentsRDD.cache() studentsRDD.checkpoint() //班级人数 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/15026083.html
- [机智的机器在学习] 机器学习中的归一化和正则化问题
- [情人节] jieba分词介绍
- 左手用R右手Python系列——异常捕获与容错处理
- 【观点】漫谈推荐系统及数据库技术(二)——分布式数据库技术
- BizTalk 2013R2 WCF-LOB Oracle Adapter安装配置/问题&解决方法
- 【Leetcode108】关关刷题日记65–Convert Sorted Array to Binary Search Tree
- 左手用R右手Python系列——动态网页抓取与selenium驱动浏览器
- 【Leetcode235】关关的刷题日记66 –Lowest Common Ancestor of a BST
- 初探Kotlin+SpringBoot联合编程
- 【Leetcode 303】关关的刷题日记67–Leetcode 303 Range Sum Query – Immutable
- 【Leetcode 70】关关的刷题日记68 – Leetcode 70 Climbing Stairs
- Linq 集合操作
- 【Leetcode 198】关关的刷题日记69 – Leetcode 198 House Robber
- 【关关的刷题日记60】Leetcode 437. Path Sum III
- 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 数组属性和方法
- C++复习笔记——C++ 关键字
- python函数——字典设置默认值 setdefault()
- Day 3:从尾到头打印链表
- python函数——字典get()方法
- Day 4:重建二叉树
- python函数——字典设置默认值get() 与 setdefault()区别
- tensorflow学习笔记——0_零碎问题及解决笔记
- MapReduce工作笔记——Hadoop MR Streaming通用模板
- MapReduce工作笔记——Hadoop shell 常用文件操作命令
- Julia简易教程——4_字符串操作
- MapReduce工作笔记——Job上传普通文件和大文件
- MapReduce工作笔记——Streaming Job中jar包上传与使用指定
- MapReduce工作笔记——Job提交任务中-D和-jobconf的区别
- MapReduce工作笔记——Hadoop Streaming多目录/多路输入
- 矩阵操作试题(C++/Python)——矩阵元素顺时针旋转