Spark 算子操作剖析2

简介: 快速学习 Spark 算子操作剖析2

开发者学堂课程【大数据实时计算框架 Spark 快速入门Spark 算子操作剖析2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/100/detail/1688


Spark 算子操作剖析 2


mapToPair (窄依赖)不会影响并行度,只有  Shuffle  算子(包括  repartition )传指定参数,才会改变并行度,默认情况下,如果没有设置  spark.default.parallelism 参数,找上一个副ID,如果设有  spark.default.parallelism  参数,则按照规定。

Shuffle 端分为  map  端和 reduce 端,有 map 阶段就有 maptasks,有 reduce 阶段就有 reducetasks。groupByKey 一个算子有两个阶段,需要分开来看。

由两个 Shuffle 的算子切割了三个 Stage:

第一阶段 repartition 前(map   Shuffle map),

第二阶段 repartition 到 groupByKey(Shuffle reduce   map   Shuffle map),

第三阶段 groupByKey 之后 (Shuffle reduce)

partition 的个数:

第一阶段 RDD 如果没有设定默认并行度,就看资源有多少个,经过一个 map 的窄依赖,并行度不变,再经过 repaitition Shuffle 的 map 阶段,并行度不变,每个 partition 内部分为多个 partition,分组数量取决于下游 reduce task 的数量,等于 repartition 算子中的数量;

第二阶段经过 Shuffle 的 reduce 阶段取决于 repartition 括号里的数量,每一个partition 来自上游RDD第一个为零的取过来的,Shuffle 的 reduce 端会主动 fetch,再经过对并行度不产生影响的 map 阶段,Shuffle 的 map 阶段为后续准备好数据,取决于groupByKey 有无参数1无参无default,同上,2无参有 default 安照设置准备好数据3有参 按照参数.

return new Tuple2(tuple._1, tuple._2+2);

D3

javapairRDD results = mapped.repartition(10);

JavaPairRDD temp = results.mapToPair(new PairFunction

private static final long serialVersionUID = 1L;

@Override

public Tuple2 call(Tuple2 tuple)

throws Exception {

return new Tuple2(tuple._1, tuple._2+2);

D3

javapairRDD> finalResults = temp.groupByKey();

finalResults.collect();

目录
打赏
0
0
0
0
42
分享
相关文章
Spark学习---day02、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
Spark学习---day02、Spark核心编程 RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
435 1
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
107 1
MaxCompute操作报错合集之 Spark Local模式启动报错,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
MaxCompute操作报错合集之使用Spark查询时函数找不到的原因是什么
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
MaxCompute操作报错合集之在Spark访问OSS时出现证书错误的问题,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
DataWorks操作报错合集之spark操作odps,写入时报错,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
MaxCompute操作报错合集之大数据计算的MaxCompute Spark引擎无法读取到表,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
MaxCompute操作报错合集之大数据计算的MaxCompute Spark引擎无法读取到表,是什么原因
MaxCompute操作报错合集之spark客户端执行时,报错,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
DataWorks操作报错合集之还未运行,spark节点一直报错,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
adb spark的lakehouse api访问内表数据,还支持算子下推吗
【2月更文挑战第21天】adb spark的lakehouse api访问内表数据,还支持算子下推吗
162 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等