概述
1.RDD持久化原理
-
Spark非常重要的一个功能特性就是可以将RDD持久化到内存中。当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition持久化到内存中,并且在之后对该RDD的反复使用中,直接使用内存缓存的partition。
-
要持久化一个RDD,只要调用cache()或persist()方法即可。在该RDD第一次被计算出来时,就会直接缓存在每个节点中。
-
cache()和persist()的区别在于,cache()是persist()的一种简化方式,cache()的底层就是调用的persist()的无参版本,同时就是调用persist(MEMORY_ONLY),将数据持久化到内存中。如果需要从内存中清除缓存,可以使用unpersist()方法
2.RDD持久化实战
-
Java版本实例
public class Persist { public static void main(String[] args) { SparkConf conf = new SparkConf().setAppName("persist").setMaster("local"); JavaSparkContext sc = new JavaSparkContext(conf); // cache()或者persist()的使用,是有规则的 // 必须在transformation或者textFile等创建了一个RDD之后,直接连续调用cache()或persist()才可以 // 如果你先创建一个RDD,然后单独另起一行执行cache()或persist()方法,是没有用的 // 而且,会报错,大量的文件会丢失 JavaRDD<String> lines = sc.textFile("C:\Users\admin\Desktop\spark.txt") .cache(); long beginTime = System.currentTimeMillis(); long count = lines.count(); System.out.println("count: " + count); System.out.println("cost " + (System.currentTimeMillis() - beginTime) + " milliseconds"); beginTime = System.currentTimeMillis(); count = lines.count(); System.out.println("count: " + count); System.out.println("cost " + (System.currentTimeMillis() - beginTime) + " milliseconds"); sc.close(); } }
-
Java版本运行结果
count: 13 cost 280 milliseconds count: 13 cost 21 milliseconds
-
Scala版本
object Persist { def main(args: Array[String]){ val conf = new SparkConf().setAppName("persist").setMaster("local") val sc = new SparkContext(conf) // 持久化 val lines = sc.textFile("C:\Users\admin\Desktop\spark.txt", 1).cache() var beginTime = System.currentTimeMillis() var count = lines.count() println("count: " + count) println("cost " + (System.currentTimeMillis()- beginTime) + " milliseconds") beginTime = System.currentTimeMillis() count = lines.count() println("count: " + count) println("cost " + (System.currentTimeMillis()- beginTime) + " milliseconds") } }
-
Scala版本运行结果
count: 13 cost 350 milliseconds count: 13 cost 25 milliseconds
最后
以上就是喜悦往事为你收集整理的Spark Core学习笔记6: RDD持久化的全部内容,希望文章能够帮你解决Spark Core学习笔记6: RDD持久化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复