Spark开发-控制操作
来源:互联网 发布:各乡镇人口数据 编辑:程序博客网 时间:2024/06/04 00:46
控制操作 control operation
1、cache(): this.type
2、persist(): this.type
3、persist(newLevel: StorageLevel, allowOverride: Boolean): this.type
在spark中对RDD进行持久化操作是一项非常重要的功能,可以将RDD持久化在不同层次的存储介质中,以便后续的操作能够重复使用,这对iterative和interactive的应用来说会极大地提高性能,
checkpoint
checkpoint接口是将RDD持久化在HDFS上,其与persist(如果也持久化在磁盘上)的一个区别是checkpoint将会切断之前的依赖关系,二persist接口依然保留着RDD的依赖关系,checkpoint的主要作用有如下2点
1、如果一个spark的程序会长时间驻留运行(如sparkstreaming),过长的依赖将会占用很多资源,那么定期地将RDD进行checkpoint操作,能够有效地节省系统资源
2、维护过长的依赖关系还会出现一个问题,如果spark在运行过程中出现节点失败的情况,那么RDD进行容错重算的成本非常高
scala> val rdd=sc.makeRDD(1 to 4,1)rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[11] at makeRDD at <console>:27scala> val flatMap=rdd.flatMap(x=>Seq(x,x))flatMap: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[12] at flatMap at <console>:29scala> sc.setCheckpointDir("temp")17/10/09 00:31:07 WARN spark.SparkContext: Checkpoint directory must be non-local if Spark is running on a cluster: tempscala> flatMap.checkpoint()scala> flatMap.dependencies.head.rddres15: org.apache.spark.rdd.RDD[_] = ParallelCollectionRDD[11] at makeRDD at <console>:27scala> flatMap.collect()res16: Array[Int] = Array(1, 1, 2, 2, 3, 3, 4, 4)scala> flatMap.dependencies.head.rddres17: org.apache.spark.rdd.RDD[_] = ReliableCheckpointRDD[13] at collect at <console>:32
阅读全文
0 0
- Spark开发-控制操作
- Spark开发-transformations操作
- Spark开发-Action操作
- spark 操作 spark-shell
- 【spark】spark-hive操作
- Spark控制ReduceTask数量
- spark streaming流量控制
- java 控制spark
- scala 控制hbase,spark
- spark开发
- spark开发
- Spark开发-spark环境搭建
- Spark开发-Spark内核细说
- Zeppelin&Spark Zeppelin开发spark
- spark mysql 行级别控制
- Spark 控制输出信息等级
- Spark操作hbase
- spark 操作 hbase
- Windows C++中嵌入Python脚本含import numpy等库出现问题
- Hive数据导入到Oracle数据库的操作方法
- 【每日一句shell】把100天前的文件打包并且删除
- 数组中最短无序序列
- printf打印颜色输出控制
- Spark开发-控制操作
- XTU 1275 Exam Schedule(暴力)
- 什么时候使用Unchecked Exception / Checked Exception?
- Java面试题集(116-135)
- zookeeper报错
- table让元素垂直居中的布局小技巧
- Go:Date/Time Format
- Qt-Hello world
- Tomcat的下载与配置