`
功夫小当家
  • 浏览: 186427 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spark - 宽依赖和窄依赖

阅读更多

(1)血缘关系:

通过血缘关系,可以知道一个RDD是如何从父RDD计算过来的

A  =map=> B =filter=> C

 

(2)窄依赖:一个父RDD的partition最多被子RDD中的partition使用一次(一父对应一子),窄依赖无shuffle

 



 

(3)宽依赖:

父RDD中的一个partition会被子RDD中的partition使用多次(一父多子)

宽依赖有shuffle,一个shuffle会拆成一个stage,2个shuffle拆成3个stage

 



 

以wordcount为例(reduceBykey是宽依赖,把stage拆为2个stage;stage序号从0开始,每个stage最后一个操作的名字作为整个stage的名字 ):

 

sc.textFile("/in/1.txt").flatMap(_.split("\t")).map((_,1)).reduceByKey(_+_).collect
 

 

分析:

wordcount例子里,reduceByKey相当于把相同的key分到一个partition上去,然后在partition上做加和,

因为并不是同一个相同key都在一个partition里,可能在不同机器上,所以需要有shuffle过程,reduceByKey在shuffle前本地会做一个预聚合

(4)会引起shuffle的操作



 

 

(5)spark中的join是宽依赖还是窄依赖?

co-partitioned 是窄依赖,其他是宽依赖

 

  • 大小: 23.4 KB
  • 大小: 20.9 KB
  • 大小: 52.6 KB
  • 大小: 10.6 KB
分享到:
评论

相关推荐

    spark-hive-2.11和spark-sql-以及spark-hadoop包另付下载地址

    在标题"spark-hive-2.11和spark-sql-以及spark-hadoop包另付下载地址"中,我们关注的是Spark与Hive的特定版本(2.11)的集成,以及Spark SQL和Spark对Hadoop的支持。这里的2.11可能指的是Scala的版本,因为Spark是用...

    spark-3.1.2.tgz & spark-3.1.2-bin-hadoop2.7.tgz.rar

    - spark-3.1.2-bin-hadoop2.7.tgz:这个版本除了包含基本的Spark组件外,还集成了Hadoop 2.7的二进制依赖,方便在Hadoop集群上直接部署和运行Spark应用。 5. 安装与运行: - 解压:使用tar命令解压tgz文件,rar...

    spark-assembly-1.5.2-hadoop2.6.0.jar

    总结,Spark-assembly-1.5.2-hadoop2.6.0.jar是Spark生态系统的关键组成部分,它集成了所有必要的模块和依赖,使得Spark应用程序的开发和部署变得更加简单。无论是初学者还是经验丰富的开发者,理解这个组件的工作...

    spark--bin-hadoop3-without-hive.tgz

    在CentOS 8上运行Spark,你可能需要安装Java开发工具包(JDK),因为Spark依赖于Java运行。此外,还要确保系统满足Spark的其他依赖,例如Python(对于PySpark)和Scala(Spark的基础语言)。安装完成后,你可以通过`...

    spark-3.2.4-bin-hadoop3.2-scala2.13 安装包

    在本安装包“spark-3.2.4-bin-hadoop3.2-scala2.13”中,包含了用于运行Spark的核心组件以及依赖的Hadoop版本和Scala编程语言支持。以下是对这些关键组成部分的详细解释: 1. **Spark**: Spark的核心在于它的弹性...

    spark-3.1.3-bin-without-hadoop.tgz

    Spark是Apache软件基金会下的一个开源大数据处理框架,它以其高效、灵活和易用性而闻名。这个"spark-3.1.3-bin-without-hadoop.tgz"压缩包是Spark的3.1.3版本,不含Hadoop依赖的二进制发行版。这意味着在部署时,你...

    spark-2.4.7-bin-hadoop2.6.tgz

    - `lib/`:包含Spark的依赖库。 - `python/`:Python相关的源码和库,支持PySpark。 - `R/`:R语言接口的相关文件。 - `sql/`:Spark SQL的相关模块。 在部署和使用Spark时,需要根据实际需求配置`spark-defaults....

    spark-2.2.2-bin-hadoop2.7.tgz

    这个压缩包"spark-2.2.2-bin-hadoop2.7.tgz"包含了Spark 2.2.2版本的所有组件和依赖,适配了Hadoop 2.7版本的生态系统。 Spark的核心特性在于它的弹性分布式数据集(Resilient Distributed Datasets, RDDs),这是...

    spark-2.3.1-bin-hadoop2.7.zip

    - `jars`:包含Spark运行所需的JAR文件,包括Spark自身的实现和其他依赖库。 - `lib`:库文件,可能包含额外的依赖或扩展。 - `python`:Python相关的源代码和库,支持PySpark的开发。 - `examples`:包含一些Spark...

    spark-core_2.11-1.6.0.jar

    spark-core_2.11-1.6.0.jar spark-core_2.11-1.6.0.jar

    spark-2.3.0-bin-hadoop2-without-hive

    总结一下,"spark-2.3.0-bin-hadoop2-without-hive"是一个专为不依赖 Hive JAR 包环境设计的 Spark 版本,适合那些希望利用 Spark 的计算优势处理 Hive 数据,而不依赖 Hive 全部功能的场景。在使用时,需要自行配置...

    spark-assembly-1.5.2-hadoop2.6.0jar包

    在大数据处理领域,Spark因其高效、易用和适用于实时计算的特性而备受青睐。 Spark的核心设计思想是提供一种快速、通用的分布式计算框架。它通过内存计算大幅提高了数据处理速度,相比Hadoop MapReduce的磁盘I/O...

    spark-3.1.2-bin-hadoop2.7.tgz

    为了运行Spark,你需要有一个运行的Hadoop环境,因为Spark依赖Hadoop的YARN资源管理系统。如果你的集群已经配置好了Hadoop,那么可以通过YARN提交Spark作业。如果只是本地测试,可以使用Spark的独立模式,通过`spark...

    spark-2.4.7-bin-without-hadoop

    总结来说,Spark 2.4.7-bin-without-hadoop是一个针对特定使用场景的Spark版本,它不依赖Hadoop,为用户提供了更大的灵活性。通过合理的配置和使用,你可以利用它的强大功能处理大规模数据,实现高效的分析和计算。...

    spark-streaming-kafka_2.10-1.6.0.jar

    KafkaUtils所依赖的jar包,导入文件中KafkaUtils报错,需要导入spark-streaming-kafka_2.10-1.6.0.jar包

    spark-2.2.0-bin-hadoop2.6.tgz

    - `jars`目录包含了运行Spark所需的各种依赖JAR文件。 - `lib`目录包含Spark的核心库和其他相关库。 - `python`目录包含Python API相关文件,使得Python开发者可以方便地使用PySpark。 - `sql`目录包含了Spark SQL...

    spark-3.0.0-bin-without-hadoop.tgz

    Spark是大数据处理领域的一款核心工具,它以高效、易用和可扩展性著称。"spark-3.0.0-bin-without-hadoop.tgz" 是Spark 3.0.0版本的二进制发行版,但不包含Hadoop依赖。这个版本特别适合那些已经拥有Hadoop环境或者...

    spark-excel-3.0.2_0.1.7.zip

    《Spark与Excel交互:深入理解Spark-excel-3.0.2_0.1.7.zip》 ...这个库的使用涉及到Java包结构、依赖管理、DataFrame操作等多个知识点,对于Spark开发者来说,掌握Spark-excel能提升数据处理的灵活性和效率。

    spark-2.4.0-bin-without-hadoop.tgz

    `spark-2.4.0-bin-without-hadoop.tgz` 文件是一个压缩包,其中包含了 Spark 2.4.0 版本的二进制文件,但不包括 Hadoop 相关依赖,这意味着你需要自行配置 Hadoop 集群环境或者连接到已有的 Hadoop 集群。...

    spark-3.2.1 安装包 下载 hadoop3.2

    在安装Spark 3.2.1时,`spark-3.2.1-bin-hadoop3.2-scala2.13.tgz`这个压缩包包含所有必要的组件和依赖项。Scala 2.13是Spark的开发语言,因此需要匹配版本的JDK环境。解压后,你可以配置环境变量,如SPARK_HOME,...

Global site tag (gtag.js) - Google Analytics