IDEA是一个非常完美的编译器,在IDEA搭建本地Spark环境需要提前配置好Scala和Java环境(看我之前的文章,有详细介绍)下面我将介绍两种方法搭建Spark环境。
方法一:更改pom.xml,添加Maven依赖
(1)首先,需要创建一个maven项目:File—New—Project
(2)检测JDK环境是否正确,并创建
(3)设置文件存储位置、Name(Artifactld)、GroupId等
(4)在该项目下的src—mian文件下创建一个新的文件夹,命名为Scala,并按回车
(5)将Scala设置为源码文件夹:右键点击Scala—Mark Directory as—Sources Root
(6)修改pom.xml文件,添加所需要的Spark依赖,并点击右下角的Enable Auto-Import 等待下载(如果是第一是导入依赖,下载时间会很长),底栏会有进度条提示,完成后可以看到右上角的绿色对勾。
注意: 在下载过程中,代码中间可能会出现红色,不代表报错,下载完成后红色会消失
Scala和Spark版本要对应,可以去Spark官网或者Maven官网查看
<build>里的东西是构建器和插件,原封不动复制就可以,不同的人代码不相同,都无所谓。
-
<dependencies>
-
<dependency>
-
<groupId>org.apache.spark
</groupId>
-
<artifactId>spark-core_2.12
</artifactId>
-
<version>2.4.4
</version>
-
</dependency>
-
<dependency>
-
<groupId>org.apache.spark
</groupId>
-
<artifactId>spark-sql_2.12
</artifactId>
-
<version>2.4.4
</version>
-
</dependency>
-
</dependencies>
-
<build>
-
<finalName>WordCount
</finalName>
-
<plugins>
-
<plugin>
-
<groupId>net.alchim31.maven
</groupId>
-
<artifactId>scala-maven-plugin
</artifactId>
-
<version>3.2.2
</version>
-
<executions>
-
<execution>
-
<goals>
-
<goal>compile
</goal>
-
<goal>testCompile
</goal>
-
</goals>
-
</execution>
-
</executions>
-
</plugin>
-
</plugins>
-
</build>
(7)创建Scala文件,点击Obiect类,命名
(8)测试程序
-
-
import org.apache.spark.{SparkConf, SparkContext}
-
object Hello {
-
def main(args: Array[String]):
Unit = {
-
System.setProperty(
"hadoop.home.dir",
"E:\\Hadoop\\hadoop-common-2.2.0-bin-master")
-
val config = new SparkConf().setMaster(
"local[*]").setAppName(
"WordCount")
-
val sc = new SparkContext(config)
-
val lines = sc.textFile(
"in")
-
val words = lines.flatMap(_.split(
" "))
-
val wordToOne = words.map((_,
1))
-
val wordToSum = wordToOne.reduceByKey(_ + _)
-
val result = wordToSum.collect()
-
result.foreach(println)
-
-
-
-
}
-
-
}
(9)测试成功
方法一:导入Spark的jars包
先创建Maven文件(和方法一相同)
(1)点击File—Project Structure
(2)点击Global Libraries,点击“+”,添加Spark包
(3)点击Java
(4)找到jars包,点击OK
(5)点击OK
(6)出现了新的jars,点击右下角的Apply
(7)添加Scala框架支持
(8)点击 Enable Auto-import(激活自动导入)
(9)创建Scala文件并测试程序,结果和方法一是相同的。
转载:https://blog.csdn.net/mango_ZZY/article/details/104637744