===== RDD类型 =====
* value类型的RDD
* key,value类型的RDD
===== value类型的RDD"转换" 操作 =====
不会触发真正的计算
* map:一个分区输入,一个分区输出
* filter:分区内过滤
* distinct:分区内去重
* flatMap: 多个分区输入,一个分区输出
* mapPartitons:获取每个分区的迭代器
* glom:将分区数据转换成数组
* union:合并RDD
* cartesian:对2个RDD进行笛卡尔操作
* subtract:2个RDD做差集
* groupby:将分区重新组织
* sample:对每个RDD中每个分区进行取样
* cache:把RDD重磁盘缓存到内存
* persist:把RDD持久化
===== key,value类型的RDD的 "转换" =====
不会触发真正的计算
* mapValues:一个分区输入,一个分区输出
* combineByKey:对分区内的相同key的值聚合(key,List[值])
* reduceByKey:对分区内的相同key的值(key,值)
* partitionBy:对RDD现有分区重新分区
* cogroup:对多个RDD中的分区重新分区
* join: 笛卡尔积连接,其实是底层做了cogroup操作
* LeftOutJoin,RightOutJoin 相当于在join的基础上先判断一侧RDD元素是否为空
===== Action =====
触发真正的计算
* foreach:对RDD中每个元素都应用某个函数操作
* saveAsTextFile:保存到hdfs
* collect:相当于将分布式的RDD返回为一个单机的数组
* count:返回RDD中元素个数
* top(k):返回最大的k个元素
* take(k):返回最小的k个元素
* takeOrdered:返回最小的k个元素,保证顺序
* reduce:正常reduce操作
* fold:于reduce原理相同,但是fold取的第一个数是zerovalue
* aggregate:先对每个分区进行aggregate,然后对整个RDD做fold操作
**只对key,value类型的RDD的有效**
* collectAsMap:相当于将k,v类型的分布式的RDD返回为一个单机的数组
* reduceByKeyLocally:先对整体执行reduce操作,再执行collectAsMap
* lookup:用于k,v类型的RDD。用于返回指定key的值的序列
===== 2个特殊变量 =====
* broadcast:广播变量
* accumulator:允许做全局累加