Intellij IDEA - 搭建Spark开发环境教程(附:Scala编程样例)
作者:hangge | 2023-09-18 09:50
我在之前的文章中写过如何搭建部署 Spark 运行环境,本文接着演示如何使用 Intellij IDEA 这个开发工具进行 Spark 程序的开发与调试。





(4)测试一下 Scala 程序是否能够正常运行。 右键点击 scala 文件夹新建一个 Scala 类,随后设置好程序的名称,并且将其设置为一个 Object。

(6)运行后可以看到控制台输出如下内容,说明一切正常。
(2)我们对上面创建的 Scala 测试类进行修改,编写一个简单的 Spark 程序,对集合数据进行转换然后输出。具体代码如下:
(3)运行后控制台将会输出如下内容:
1,准备工作
(1)首先本地需要安装好 Java 8 的 JDK,并设置 JAVA_HOME 环境变量。
(2)接着安装 Intellij IDEA 这个开发工具。
2,安装 Scala 插件
(1)由于 Spark 由 Scala 语言开发的,所以我们开发所使用的语言也为 Scala。打开 Intellij IDEA 的插件市场,搜索 scala 插件并安装,安装完之后重启 IDE。

(2)点击“新项目的项目结构”(Structure for New Projects)菜单,在“全局库”(Global Libraries)选项卡下点“+”后选择 Scala SDK:
提示:如果不知道这个菜单在哪,可以双击 shift 键,在弹出的搜索框中输入关键字搜索。

(3)然后会弹出如下界面,我们根据 Spark 版本选择响应合适的 Scala 版本进行下载。比如我使用的 Spark 为 3.4.0,则对应的 Scala 版本则是 2.13:
(4)下载完之后,在“全局库”(Global Libraries)里就有这个 sdk 了,然后我们右键点击这个 sdk,然后点击“复制到项目库”(Copy to Project Libraries)后确定。

3,创建 Maven 项目
(1)我们使用 IDEA 新建一个 Maven 项目:

(2)项目创建后,我们要将 Scala 的框架添加到这个项目中。在项目名称上右键菜单中点击“添加框架支持”(Add Framework Support…),然后在打开的对话框左侧边栏中,勾选 Scala 前面的复选框,然后点击确定即可。

(3)在 main 文件夹中建立一个名为 scala 的文件夹,并右键点击 scala 文件夹,选择“将目录标记为”(Make Directory as),然后选择“源代码根目录”(Sources Root)。这个操作的作用是将 scala 文件夹标记为一个源文件的根目录,然后在其内的所有代码中的 package ,其路径就从这个根目录下开始算起。


(5)该类的代码如下:
object Hello {
def main(args: Array[String]):Unit = {
println("hello hangge.com")
}
}
(6)运行后可以看到控制台输出如下内容,说明一切正常。

4,添加 Spark 依赖
(1)打开项目的 pom.xml 文件,添加如下高亮部分的内容:
注意:下面依赖中只有 spark-core 是必须的,其他依赖库可以再后续用到时再添加。同时这里我还添加了个阿里云仓库的依赖,用于提高依赖包的下载速度。
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>spark</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spark.version>3.4.0</spark.version>
<scala.version>2.13</scala.version>
</properties>
<repositories>
<repository>
<id>alimaven</id>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>alimaven</id>
<url>https://maven.aliyun.com/repository/public</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
</dependencies>
</project>
(2)我们对上面创建的 Scala 测试类进行修改,编写一个简单的 Spark 程序,对集合数据进行转换然后输出。具体代码如下:
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object Hello {
def main(args: Array[String]):Unit = {
// 创建 Spark 运行配置对象
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Hello")
// 创建 Spark 上下文环境对象(连接对象)
val sc : SparkContext = new SparkContext(sparkConf)
// 创建RDD(通过集合)
val rdd1: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4))
// 对数据进行转换
val rdd2: RDD[Int] = rdd1.map(_+1)
// 打印结果
rdd2.collect().foreach(println)
//关闭 Spark
sc.stop()
}
}
(3)运行后控制台将会输出如下内容:
全部评论(0)