1.MapReduce只有2个算子,Map和Reduce,绝大多数应用场景下,均需要复杂编码才能达到用户需求,而spark有八十多个算子
2.转换算子:此种算子不触发提交作业,只有作业被提交后才会真正启动转换计算
3.value型转换算子:
4.一对一:map算子:给定一个输入通过map函数映到成一个新的元素输出
flatMap算子:给定一个输入,将返回的所有结果打平成一个一维集合结构
mapPartitions算子
glom算子:以分区为单位,将每个分区的值形成一个数组
5.多对一:union算子:两个RDD合并成一个RDD,并不去重
cartesian算子
6.多对多:groupBy算子:子集:filter算子:过滤,输出分区为输入分区子集型
distinct算子:去重,输出分区为输入分区子集型
subtract算子:
sample算子
takeSample算子
Cache:cache算子:将 RDD 元素从磁盘缓存到内存。
persist算子:
7.Key-Value型转换算子
一对一:mapValues算子
对单个RDD聚集:combineByKey算子
reduceByKey算子:按key聚合后对组进行归约处理,如求和、连接等操作
partitionBy算子
对两个RDD聚集:cogroup算子
连接:join算子
leftOutJoin算子
rightOutJoin算子
8.行动算子:
此种算子会触发SparkContext提交作业
无输出:foreach算子
HDFS:saveAsTextFile算子
saveAsObjectFile算子
Scala集合和数据类型
collect算子
collectAsMap算子
reduceByKeyLocally算子
lookup算子
count算子
top算子
reduce算子
fold算子
aggregate算子
spark算子
最新推荐文章于 2024-10-10 00:00:00 发布
本文详细对比了Spark与MapReduce在数据处理上的差异,着重介绍了Spark的丰富算子,包括一对一、多对一和多对多转换算子,如map、flatMap、union和reduceByKey等,以及Key-Value型转换算子和行动算子,如join、cache和saveAsTextFile等。这些算子使得Spark在复杂计算场景下更具优势和灵活性。
摘要由CSDN通过智能技术生成