用户工具


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操作
  • collectAsMap:相当于将k,v类型的分布式的RDD返回为一个单机的数组
  • reduceByKeyLocally:先对整体执行reduce操作,再执行collectAsMap
  • lookup:用于k,v类型的RDD。用于返回指定key的值的序列

2个特殊变量

  • broadcast:广播变量
  • accumulator:允许做全局累加