实验前提:
a. 安装好了windows本地的Scala,直接解压安装包也行
b. 安装好了IDEA的scala插件,教程:IntelliJ IDEA编写Scala代码(安装Scala插件)
c. 安装好了JDK与Maven,直接使用IDEA内置的Maven也可以
a. 新建一个Maven项目,选择好JDK,然后其他的默认或者自己决定
a. 设置编写scala代码的文件夹
打开src/main
,建一个scala
文件夹(与java
同级)
b. 标记scala
文件夹为资源文件夹
右击scala文件夹,选择Mark Directory as
,选择第一个Sources Root
,然后文件夹变成了蓝色。
c. 将Language level改为8
(我使用的JDK为8,所以为8,如果是7则用7)
点击IDEA右上角放大镜左边的按钮(Project Structure
),或者快捷键ctrl + shift + alt + S ,点击Modules
:
d. 引入Scala的SDK
a. 在pom.xml文件中添加依赖并Reimport
一下:
<dependencies>
<dependency>
<groupId>org.apache.sparkgroupId>
<artifactId>spark-core_2.11artifactId>
<version>2.2.0version>
dependency>
dependencies>
a. 在scala
文件夹建com.shaonaiyi
包
a. 右击包名,选择New一个Scala Class(如果没有引入Scala的SDK,是建不了的)
b. 完整代码:
package com.shaonaiyi
import org.apache.spark.{SparkConf, SparkContext}
/**
* @Auther: 邵奈一
* @Date: 2019/03/28 下午 3:16
* @Description: IntelliJ IDEA开发Spark案例之WordCount
*/
object WordCountLocal {
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
conf.setAppName("WordCountLocal")
conf.setMaster("local")
val sparkContext = new SparkContext(conf)
val textFileRDD = sparkContext.textFile("src/main/resources/word.txt")
val wordRDD = textFileRDD.flatMap(line => line.split(" "))
val pairWordRDD = wordRDD.map(word => (word, 1))
val wordCountRDD = pairWordRDD.reduceByKey((a, b) => a + b)
wordCountRDD.saveAsTextFile("src/main/resources/wordcount")
}
}
a. 新建word.txt文件放于src/main/resources/
路径下
shao shao shao
nai yi yi nai
hello hello hi
b. 如果没有错误的话,结果应该是:
shao=>3次,
nai=>2次,
yi=>2次,
hello=>3次,
hi=>1次,
(hi,1)
(shao,3)
(hello,2)
(nai,2)
(yi,2)
不是应该按照字母的顺序排序吗?!
作者简介:邵奈一
全栈工程师、市场洞察者、专栏编辑
| 公众号 | 微信 | 微博 | CSDN | 简书 |
福利:
邵奈一的技术博客导航
邵奈一 原创不易,如转载请标明出处。