小标
2018-12-24
来源 :
阅读 1237
评论 0
摘要:本文主要向大家介绍了【云计算】Spark缓存策略解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
本文主要向大家介绍了【云计算】Spark缓存策略解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
持久化的单位是partition,2是指partition的备份数,不是指持久化到几个节点上
package com.bjsxt.spark.persist
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.storage.StorageLevel
object CacheTest {
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
.setAppName("CacheTest")
.setMaster("local")
val sc = new SparkContext(conf)
sc.setCheckpointDir("G://checkpoint")
var liensRDD = sc.textFile("userLog")
/**
* 1、cache的返回值 必须赋值给一个新的变量 , 在其他的job中直接使用这个变量就可以
* 2、cache是一个懒执行,必须有action类的算子触发
* 3、cache算子的后面不能立即添加action类算子
*
*
* cache默认会将rdd中的数据持久化到内存中
*
* persist和cache有什么区别?
* cache是persist的一个简化版 persist里面可以手动指定其他的持久化级别 cache = persists(StorageLevel.MEMORY_ONLY)
*
*/
// liensRDD = liensRDD.cache()
liensRDD.checkpoint()
liensRDD = liensRDD.persist(StorageLevel.MEMORY_ONLY)
val startTime = System.currentTimeMillis()
val count1 = liensRDD.count
val endTime = System.currentTimeMillis()
println("总共耗时:" + (endTime - startTime) + "ms\t Count:" + count1)
val startTime1 = System.currentTimeMillis()
val count2 = liensRDD.count
val endTime1 = System.currentTimeMillis()
println("总共耗时:" + (endTime1 - startTime1) + "ms\t Count:" + count2)
}
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号