一、案例分析:Spark RDD实现单词计数
(一)案例概述
单词计数是学习分布式计算的入门程序,有很多种实现方式,例如MapReduce;使用Spark提供的RDD算子可以更加轻松地实现单词计数。
在IntelliJ IDEA中新建Maven管理的Spark项目,并在该项目中使用Scala语言编写Spark的WordCount程序,最后将项目打包提交到Spark集群(Standalone模式)中运行。
(二)实现步骤
1、新建Maven管理的Spark项目
在IDEA中选择File→new→Project…,在弹出的窗口中选择左侧的Maven项,然后在右侧勾选Create fromarchetype复选框并选择下方出现的org.scala-tools.archetypes:scala-archetype-simple项(表示使用scala-archetype-simple模板构建Maven项目)。
在弹出的窗口中填写GroupId与ArtifactId,Version保持默认设置即可,然后单击Next按钮
在弹出的窗口中从本地系统选择Maven安装的主目录的路径、Maven的配置文件settings.xml的路径以及Maven仓库的路径,然后单击Next按钮
在弹出的窗口中项目名称为WordCount
,就是先前设置的ArtifactId的值,当然也可以修改,然后单击Finish按钮
2、添加Scala和Spark依赖
- 启动spark-shell,可以看到Spark2.4.4使用Scala2.11.12
- 在pom.xml文件里添加Scala2.11.12和Spark 2.4.4依赖,添加Maven构建插件
-
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.hw.spark</groupId>
<artifactId>WordCount</artifactId>
<version>1.0-SNAPSHOT</version>
<inceptionYear>2008</inceptionYear><dependencies&g