SparkRDD

算子分类
一、
Transformation
概念:字面意思就是进行转换,将rdd有一个形态转化成另一个形态
常见Transformation算子
flatmap:将行拆分为单词
map:最常用的算子,将原rdd的形态转化为另一种形态
filter:过滤
sample:根据给定的随机算子seed,随机抽样出数量为frac的数据
union:返回一个新的数据集,由元数据集和参数联合而成,该union操作和sql中的union all 操作一模一样(不去重)
groupbykey:对数组进行groupbykey操作
reducebykey:需要先进行一次本地的预聚合,每个mapper(对应的partition)执行一次预聚合
join:打印关联的组合信息
sortbykey:进行排序
combinebykey:
注意:
使用combinebykey和aggreaggregateBykey模拟groupbykey和reducebykey
不管combineByKey还是aggregateByKey底层都是使用
combineByKeyWithClassTag来实现的
区别:

1、本质上combineByKey和aggregateByKey都是通过combineByKeyWithClassTag来实现的,只不过实现的细节或者方式不大一样。

2、combineByKey更适合做聚合前后数据类型不一样的操作,aggregateByKey更适合做聚合前后数据类型一致的操作

   因为我们可以在combineByKey提供的第一个函数中完成比较复杂的初始化操作,而aggregateByKey的第一个参数是一个值

3、我们使用时最简单的版本,而在实际生产过程中,一般都是相对比较复杂的版本,还有其它参数的,比如partitioner

二、Action算子

概念:字面意思就是执行,action的操作目的就是用来执行一个job作业的

常见的action算子

reduce:执行reduce操作,返回值是一个标量
collect :将数据从集群中的worker上拉取到dirver中,所以在使用的过程中要慎用,意外拉取数据过大造成driver内存溢出
count :返回当前rdd中有多少条记录
take : 获取rdd前n条记录
first : take(1) 获取rdd中的第一条记录
savenAsTextFile:将RDD中的数据保存到文件系统中
countByKey:和readuceByKey效果相同,但reduceByKey是一个Transformation

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值