Learning Spark 笔记(三) -- take和persist
来源:互联网 发布:下载360软件管家 编辑:程序博客网 时间:2024/05/21 08:49
4 . take(n)试图最小化访问分区,此操作并不一定以期待的顺序返回数据。
5 . 当持久化一个RDD的时候,计算这个RDD的节点会保存它们的分区。如果缓存了数据的节点出错了,Spark会在需要的时候重新计算丢失的分区。只有遇到action的时候才会真正的执行持久化操作。默认的持久化操作是将数据存放在JVM中作为非序列化对象。如下面wordcount的例子:
val lines = sc.textFile("...",100)val words = lines.flatMap(x=>x.split(" "))\\持久化words的RDD,并且内存硬盘序列化存储words.persist(StorageLevel.MEMORY_AND_DISK_SER) val wordcount = words.map(x=>(x,1))val result = wordcount.reduceBykey(_+_)
如上面的wordcount,如果words的RDD中某一个丢失了,就只会对丢失的数据进行split操作,并不会全部计算。
关于persist的存储级别有5种,如图所示:
其中persist()和cache()相当于persist(StorageLevel.MEMORY_ONLY)。
后缀中带有 _SER 的表示序列化存储,使用序列化的方式来保存RDD数据,此时RDD中的每个分区都会序列化成一个大的字节数组,然后再持久化到内存或者磁盘中。序列化的方式可以减少持久化的数据对内存或磁盘的占用量,进而避免内存被持久化数据占用太多,从而发生频繁的GC。但是序列持久化会有序列化和反序列化的时间开销。
0 0
- Learning Spark 笔记(三) -- take和persist
- Spark的cache和persist
- Spark中cache和persist的区别
- spark cache和persist的区别
- Spark中persist和cache的区别
- Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
- Learning Spark 笔记(一) -- Lazy优势和transformation传参
- Learning Spark笔记7-聚合
- Learning Spark笔记10-PageRank
- Learning Spark笔记12-累加器
- Spark RDD中cache和persist的区别
- Spark RDD中cache和persist的区别
- Spark RDD的缓存 rdd.cache() 和 rdd.persist()
- 2017.06.15--spark中cache和persist的区别
- Spark中cache和persist的作用以及存储级别
- 【Spark系列5】cache和persist的区别
- Spark RDD的缓存 rdd.cache() 和 rdd.persist()
- Learning Spark笔记1-Spark介绍
- [note][reinforcement-learning] (0) using reinforcement to solve frozen-lake
- Nginx 快速入门、基本配置
- 如何去除标题栏
- 如何在CentOS/RHEL & Fedora上安装MongoDB 3.2
- React Native你需要整理一下
- Learning Spark 笔记(三) -- take和persist
- 小鸡腿U R III 杭州2013
- swift开发学习网站
- 精选30道Java笔试题解答
- ReactJS 15.x - JSX是什么,JSX编译器,JSX语法转成原生的JS语法
- struts表单验证简单实现
- 详谈高大上的图片加载框架Glide -应用篇
- 字符编码详解
- ”mysql服务无法启动 服务没有报告任何错误“解决方法