1、创建项目:
打开idea,file->new->project->maven输入自己的项目名,并将main下的java文件夹改成scala。
2、在项目上新增scala支持
在这里使用的是scala2.11.8(没下载scala的点击create。没有scala插件的先下载scala插件)
3、pom文件中添加spark所需要的jar包
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spark.version>2.3.3</spark.version>
<scala.version>2.11</scala.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo2.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>
</build>
下载jar包比较慢 最后查看下jar是否都下载正常。
先创建个测试类 测试下scala是否正常,注意kind选择object(可自行百度scala和object的区别)
右键运行 console出现hello world 表示scala安装没问题。
4、核心代码
创建一个测试文件 hello.txt
内容为
1 3 5 6 8 9 1 3 9 9 9

源码copy
package com.liu.spark.test
import org.apache.spark.SparkContext
object WordCount {
def main(args: Array[String]): Unit = {
val file = "hello.txt"
val sc = new SparkContext("local", "wordCount")
val data = sc.textFile(file)
data.flatMap(_.split(" "))
.map((_, 1))
.reduceByKey(_ + _)
.collect()
.foreach(println)
}
}
右键运行
到目前为止在idea中执行spark已经完成
接下来要进行打包成jar通过spark-submit提交到spark去运行
— 解决异常图
build->build Artifacts->build
找到 {projectName}/out/artifacts/wordCount_jar/wordCount.jar
class后面一定要带着包名 jar包选择一定要全路径
spark-submit --class com.liu.spark.test.WordCount {projectName}/out/artifacts/wordCount_jar/wordCount.jar
执行成功
注意
很多童鞋在idea中执行成功 但是在spark submit提交会出现ClassNotFoundException异常,可以看下解决异常图,要选择copy to the output
将所有的jar分开 ,这样的好处是提交多个工程不需要每个jar都打的特别大,简单实用