Spark源码阅读(一)RDD
来源:互联网 发布:apache tiles性能 编辑:程序博客网 时间:2024/05/21 06:31
1. persist() & cache()
def persist(): this.type = persist(StorageLevel.MEMORY_ONLY) def cache(): this.type = persist()
可以看出persist的存储级别是MEMORY_NOLY
cache 与 persist 完全一样
2. countByKey & countByValue
def countByKey(): Map[K, Long] = self.withScope { self.mapValues(_ => 1L).reduceByKey(_ + _).collect().toMap }
countByKey调用了reduceByKey,并且collect后转换成了map。所以如果Key的量比较大,谨慎调用该函数,否则会OOM,可以直接使用reduceByKey实现而不collect。
def countByValue()(implicit ord: Ordering[T] = null): Map[T, Long] = withScope { map(value => (value, null)).countByKey() }
countByValue直接调用了countByKey
3. isEmpty()
def isEmpty(): Boolean = withScope { partitions.length == 0 || take(1).length == 0 }
isEmpty 操作是先调用partitions的长度,如果为0直接判断为true,如果不为0;再去一个元素看是否为空。
0 0
- Spark源码阅读(一)RDD
- spark源码阅读笔记RDD(一)RDD的基本概念
- Spark源码阅读笔记(RDD)(一)
- spark RDD 源码阅读笔记
- spark源码阅读RDD中WithScope是什么?
- spark源码阅读笔记RDD(二)RDD子类基本方法和信息
- spark源码阅读笔记RDD(三)RDD的缓存原理
- spark源码阅读笔记RDD(四)RDD中WithScope是什么?
- spark源码阅读笔记RDD(五) RDD中的checkpoint原理
- spark源码阅读笔记RDD(六) RDD的依赖关系
- spark源码阅读笔记RDD(七) RDD的创建、读取和保存
- [spark源码剖析]RDD相关源码阅读笔记
- spark源码阅读一 spark源码编译
- spark源码阅读笔记Spark原理(一)基本前提
- Spark源码分析(二)RDD
- Spark源码系列(二)RDD详解
- Spark的RDD详解(源码)
- Spark源码系列(二)RDD详解
- java线程文章汇总
- java第一天学习心得和感受
- 吐血(3)归并排序
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- Jquery下拉列表防止动画累积
- Spark源码阅读(一)RDD
- Service实用型讲解(startService和bindService)
- 博客第一天,ACM集训第一天
- spring使用context:property-placeholder载不进属性问题
- 欢迎使用CSDN-markdown编辑器
- Java源码-温度转换小程序(Temperature Conversion)
- VB程序学习代码记录20160801
- Effective C++_Item7笔记
- 可变数组的追加,插入,删除,替换