SparkRDD Operations(一)

本文深入探讨了Spark中RDD的两大操作类型Transformations和Actions,详细解析了map、filter、flatMap、groupByKey、reduceByKey等常见算子的功能及应用场景,为Spark初学者提供了一个清晰的学习路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.RDD分类

RDD 算子中,有两大分类 TransformationsActions,对于RDD而言,它支持者两种类型的操作;

1.1 Transformations:

  • 从现有的数据库中 经过装换操作之后形成新的RDD,常见的的 Transformations 算子有 map,filter,mapPartitions,groupByKey
  • Transformations 这类算子,都是 lazy的,因为它们不会立即计算结果,这类算子只会记得RDD之后的转换关系,也是就 bloodline(血统),这个是因为RDD的特性(A list of dependencies on other RDDs)

1.2 Actions:

  • 当Spark应用程序 遇到这类算子 会产生Job,在对数据集运行计算后,将值返回给驱动程序,常见的Actions 算子有 reduce,take,collect,saveAsTextFile

2.RDD常见算子操作

map:

map(func)
将func函数作用到数据集的每一个元素上,生成一个新的分布式的数据集返回

word => (word,1)

filter:

filter(func)
选出所有func返回值为true的元素,生成一个新的分布式的数据集返回

flatMap

flatMap(func)
输入的item能够被map到0或者多个items输出,返回值是一个Sequence

groupByKey:把相同的key的数据分发到一起

['hello', 'spark', 'hello', 'world', 'hello', 'world']
('hello',1) ('spark',1)........

reduceByKey: 把相同的key的数据分发到一起并进行相应的计算

 mapRdd.reduceByKey(lambda a,b:a+b)
 [1,1]  1+1
 [1,1,1]  1+1=2+1=3
 [1]    1

Join:

inner join
outer join:left/right/full
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值