03WordCount案例

本文通过介绍WordCount案例,讲解如何使用Spark进行大数据处理。首先解释了WordCount的基本概念,接着分析了用Java实现该功能的思路。然后详细阐述了在本地环境和服务器上使用Spark Scala代码实现WordCount的过程,包括文件读取、分词、分组计数及结果保存。文章以一个简单的Spark入门案例引导读者理解Spark的核心操作,为后续深入学习Spark打下基础。
摘要由CSDN通过智能技术生成

大家好,我是一条~

5小时推开Spark的大门,第三小时,带大家做一个大数据入门的经典案例——WordCount。

话不多说,开干!

题目描述

WordCount,顾名思义,统计文件中不同单词出现的次数,一般在日志分析中经常会用到。

一条在学习Hadoop时做的一个项目是分析金庸小说中的人物关系,那要做的第一步就是统计各个人物出现的次数。

案例分析

如果让你用Java来实现这个需求,相信大家都会有思路。

  • 分词:把长句子分成单词,如果是规范的文本,可以用空格分割,不规范的文本,可以用jieba分词,感兴趣的同学可以百度了解一下。
  • 分组计数:相同的单词一组,计算出现的次数,并用一个map的保存。
  • 保存结果:将结果写入文件。

案例实现

1.本地实现

打开上一节建的WordCount.scala文件,编辑如下代码,每行都有注释,对Scala不熟悉的同学先不要纠结语法问题,我们的重点是Spark。

object WordCount {
  def main(args: Array[String]): Unit = {
    // 创建 Spark 运行配置对象
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount")
    // 创建 Spark 上下文环境对象(连接对象)
    val sc  = new SparkContext(sparkConf)
    // 读取文件
    var input=sc.textFile("src/main/java/test.txt");
    // 分词
    var lines=input.flatMap(line=>line.split(" "))
    // 分组计数
    var count=lines.map(word=>(word,1)).reduceByKey{(x,y)=>x+y}
    // 打印结果
    count.foreach(println)
    //关闭 Spark 连接
    sc.stop()
  }
}

注意文件存放的路径,保证能读取到文件。

输出结果

2.提交到服务器

打包成jar包,上传到服务器,记得修改成服务上的文件路径。

#启动master
./sbin/start-master.sh
#启动worker 
./bin/spark-class org.apache.spark.deploy.worker.Worker spark://VM-24-10-centos:7077
#提交作业
./bin/spark-submit  --master spark://VM-24-10-centos:7077 --class WordCount /data/opt/spark/file/spark-wordcount-1.0-SNAPSHOT.jar

输出结果

最后

ok,一个经典的入门案例我们已经完成了,是不是觉得Spark也没那么难。

但是,不知道同学们有没有如下疑问:

  • Spark内部是如何组合计数的?
  • Worker和Master是什么关系?
  • RDD是什么东西?

如果有,请坚持打卡,明后两天将会解答大家的疑惑,填坑——Spark核心编程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一条coding

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

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

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

打赏作者

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

抵扣说明:

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

余额充值