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)