IntelliJ IDEA开发Spark案例之WordCount

教程目录

  • 0x00 教程内容
  • 0x01 新建Maven项目
          • 1. 新建Maven项目
          • 2. 项目配置
          • 3. 引入项目的依赖
  • 0x02 编写WordCount代码
          • 1. 新建包
          • 2. 编写scala代码
  • 0x03 校验结果
          • 1. 统计文件准备
          • 2. 统计结果
  • 0xFF 总结

0x00 教程内容

  1. 新建Maven项目
  2. 编写WordCount代码
  3. 校验结果

实验前提:
a. 安装好了windows本地的Scala,直接解压安装包也行
b. 安装好了IDEA的scala插件,教程:IntelliJ IDEA编写Scala代码(安装Scala插件)
c. 安装好了JDK与Maven,直接使用IDEA内置的Maven也可以

0x01 新建Maven项目

1. 新建Maven项目

a. 新建一个Maven项目,选择好JDK,然后其他的默认或者自己决定

2. 项目配置

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
IntelliJ IDEA开发Spark案例之WordCount_第1张图片
d. 引入Scala的SDK
IntelliJ IDEA开发Spark案例之WordCount_第2张图片

3. 引入项目的依赖

a. 在pom.xml文件中添加依赖并Reimport一下:

<dependencies>
    <dependency>
        <groupId>org.apache.sparkgroupId>
        <artifactId>spark-core_2.11artifactId>
        <version>2.2.0version>
    dependency>
dependencies>

0x02 编写WordCount代码

1. 新建包

a. 在scala文件夹建com.shaonaiyi

2. 编写scala代码

a. 右击包名,选择New一个Scala Class(如果没有引入Scala的SDK,是建不了的)
IntelliJ IDEA开发Spark案例之WordCount_第3张图片
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")
  }

}

0x03 校验结果

1. 统计文件准备

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次,
2. 统计结果

IntelliJ IDEA开发Spark案例之WordCount_第4张图片

0xFF 总结

  1. 本教程比较简单,实现了windows本地的WordCount例子,需要学习Scala编程语言
  2. 编写Scala语言,还需要在IDEA里面安装好Scala插件
  3. 思考题:我们的统计结果,为什么是:
(hi,1)
(shao,3)
(hello,2)
(nai,2)
(yi,2)

不是应该按照字母的顺序排序吗?!


作者简介:邵奈一
全栈工程师、市场洞察者、专栏编辑
| 公众号 | 微信 | 微博 | CSDN | 简书 |

福利:
邵奈一的技术博客导航
邵奈一 原创不易,如转载请标明出处。


你可能感兴趣的:(大数据,复制粘贴玩大数据系列教程,复制粘贴玩转大数据系列专栏)