走进Spark的世界-IDEA用Scala实现简单的WordCount案例

在学习大数据的过程中,已经了解了MapReduce的框架和使用,并了解了其底层数据处理的实现方式。接下来,就让咱们走进 Spark 的世界,了解一下它是如何带领我们完成数据处理的。

创建项目

首先通过IDEA创建MAVEN项目:
groupId:取名为com.atguigu.bigdata
name:atguigu-classes
项目进来之后,删掉Src模块,创建spark-core的Module,添加Scala的依赖,首先自己去官网下载Scala,这里下载的是2.12版本。
创建完的项目结构:
在这里插入图片描述

接着添加项目的支持:
在这里插入图片描述
到全局变量这里,添加Scala的依赖:
在这里插入图片描述
选择所对应的版本。

导入依赖

因为我们要使用Spark,所以首先要建立和Spark的连接,在spark-core的
pom.xml中引入spark的依赖:

    <artifactId>spark-core</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>3.0.0</version>
        </dependency>
    </dependencies>

编写datas文件

创建directory,取名为datas,里面创建两个file,一个1.txt 一个2.txt:
在这里插入图片描述
内容为用空格切分

编写WordCount案例

接着创建包,包名取为:com.atguigu.bigdata.spark.core.wc,创建Scala类,选择Object类型:

package com.atguigu.bigdata.spark.core.wc

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark01_WordCount {
  def main(args: Array[String]): Unit = {
    //Application
    //Spark框架
    //TODO 建立和Spark框架的连接
    //JDBC:Connction
    val sparkConf=new SparkConf().setMaster("local").setAppName("WordCount")
    val sc =new SparkContext(sparkConf);

    //TODO 执行业务操作
    //1.读取文件,获取一行一行的数据
    //hello world
    val lines: RDD[String] = sc.textFile("datas")

    //2.将行数据拆分,形成1个1个单词(分词)
    // "hello world"=>hello world,hello spark
    val words:RDD[String] = lines.flatMap(_.split(" "))


    //3.将数据根据单词进行分组,便于统计
    //(hello,hello,hello),(world,world)
    val wordGroup: RDD[(String,Iterable[String])]= words.groupBy(word => word)

    //4.对分组后的数据进行聚合 进行转换
    // (hello,hello,hello),(world,world)
    //(hello,3) (world,2)
    val wordToCount = wordGroup.map{
      case (word,list)=>{
        (word,list.size)
      }
    }

    //5.将转换结果采集到控制台打印出来
    val array = wordToCount.collect()
    array.foreach(println)

    //TODO 关闭连接
    sc.stop()
  }
}

结果:
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值