IDEA创建基于Scala语言的Spark Maven项目及WordCount
前提概要须知:使用的 Spark 版本为 3.0.0,默认采用的 Scala 编译版本为 2.12。
一、创建Maven项目
1.1、下载有 Scala 开发插件![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5d919a5c664054f666b9f782800ff4fd.png)
注:下载完,记得要重启,否则后面有需要的东西,加载不出来。
1.2、新建maven project![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/349dc6135b4dd466a5fea64f63731109.png)
这里直接可直接next,接下来填写基本信息。
1.3、设置Maven配置指向
apache-maven-***可自行下载。
1.3、添加Spark的maven的依赖
<?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">
<parent>
<artifactId>Han_Spark</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>spark-core</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-yarn_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.27</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
</dependencies>
</project>
注:这里要改成自己的project 名字哟。
修改完pom之后,要重新编译。
或者build.
1.4、Global Libaries 添加Scala SDK
链接:
https://www.scala-lang.org/download/
注意官网看版本匹配。
下载完解压:
之后Global Libaries 添加Scala SDK
1.5、Libaries添加Scala SDK
依次选择File->Project Structure->Global Libaries,添加Scala-sdk,跟上面过程一样
此时就有:
二、WordCount
上述位置,maven配置已完毕,接下来wordcount配置
package com.lizi.wordcount
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
object WordCount {
def main(args: Array[String]) {
val inputFile = "D:\\develop\\a.txt"
val conf = new SparkConf().setAppName("WordCount").setMaster("local")
val sc = new SparkContext(conf)
val textFile = sc.textFile(inputFile)
val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
wordCount.foreach(println)
}
}
三、问题
IDEA配置Spark找不到spark-assembly-*.jar
按照博客在IDEA上配置Spark环境,所有博客都写的是:
1、网上下载 spark-assembly-1.2.0-hadoop2.4.0.jar
2、在项目页“File” -> “project structure” -> “Libraries”, 点“+”,选“java”,找到spark-assembly-1.2.0-hadoop2.4.0.jar导入,这样就可以编写spark的scala程序了
- 但是我们在文件夹中看不到这个jar包
- 后来才发现因为spark升级到spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-.jar已经不存在。原来的jar包分解为:jars/.jar
- 所以导入的时候直接导入spark文件夹中的所有jar包就可以了。