核心
wordcount流程详细讲解

有一份这样的数据
hello xlucas hello hadoop
hello hadoop
hello spark
hello kafka

最后的结果是这样的
hello:5
hadoop:2
spark:1
xlucas:1
kafka:1

那么这里spark主要做了哪些事情?

我们先从textFile可以看到这里调用了HadoopFile
Spark开发-WordCount流程详细讲解

从HadoopFile这里我们可以看到,创建了一个HadoopRDD的实例
Spark开发-WordCount流程详细讲解

在去掉Key的时候会做Map操作,这个map会返回 一个MapPartitionsRDD
Spark开发-WordCount流程详细讲解

这里的flatMap也会返回一个MapPartitionsRDD
Spark开发-WordCount流程详细讲解

在做reduceByKey的时候,其实调用了combineByKeyWithClassTag
Spark开发-WordCount流程详细讲解

我们可以看到combineByKeyWithClassTag其实返回了一个shuffledRDD
Spark开发-WordCount流程详细讲解

我们可以看到在shuffledRDD最后还做了一个MapPartitionsRDD的操作,其实这一步主要做了一次数据整理,在操作之前将文件的key去掉了,这一步将文件的key加上写回到HDFS等操作
Spark开发-WordCount流程详细讲解

整个流程图是这样的:
Spark开发-WordCount流程详细讲解

相关文章: