在此之前,我已经用MapReduce 框架实现了WordCount案例,接下来,我开始学习数据处理的另外一个非常重要的方法:Spark。首先,使用WordCount案例实现Spark快速上手。

创建Maven项目

1. 增加Scala插件

使用的Spark 版本为 3.0.0,默认采用的Scala 编译版本为 2.12
操作步骤

2. 增加依赖关系

修改 Maven 项目中的POM 文件,增加Spark 框架的依赖关系(请注意对应版本)

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

3. 添加日志配置信息

执行过程中,会产生大量的执行日志,如果为了能够更好的查看程序的执行结果,可以在项
目的resources 目录中创建log4j.properties 文件,并添加日志配置信息:
配置信息:

log4j.rootCategory=ERROR, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd
HH:mm:ss} %p %c{1}: %m%n # Set the default spark-shell log level to ERROR. When running the spark-shell,
the
# log level for this class is used to overwrite the root logger's log level, so
that
# the user can have different defaults for the shell and regular Spark apps.
log4j.logger.org.apache.spark.repl.Main=ERROR # Settings to quiet third party logs that are too verbose
log4j.logger.org.spark_project.jetty=ERROR
log4j.logger.org.spark_project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=ERROR
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=ERROR
log4j.logger.org.apache.parquet=ERROR
log4j.logger.parquet=ERROR # SPARK-9183: Settings to avoid annoying messages when looking up nonexistent
UDFs in SparkSQL with Hive support
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR


注意:两个红框的地方都要有log4j.properties 文件(只需要在resources下创建就可以了,target目录下是自动生成的,如果没有生成,直接复制一份粘贴过去)

WordCount案例

1. 代码示例

package wcimport 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:Connectionval sparkConf = new SparkConf().setMaster("local").setAppName("WordCount")val sc = new SparkContext(sparkConf)//TODO 执行业务操作//1.读取文件,获取一行一行的数据var lines: RDD[String] = sc.textFile("datas")//2.一行数据进行拆分,形成一个一个的单词(分词):扁平化var words: RDD[String] = lines.flatMap(_.split(" "))//3.将数据根据分词进行分组,便于统计var wordGroup: RDD[(String, Iterable[String])] = words.groupBy(word => word)//4.对分组后的数据进行转换(统计)val wordToCount = wordGroup.map{case (word, list) => {(word, list.size)}}//5.将转换结果采集到控制台打印出来var varry: Array[(String, Int)] = wordToCount.collect()varry.foreach(println)//TODO 关闭spark的连接sc.stop()}}

2. 结果截图

Spark快速上手-WordCount案例相关推荐

  1. Spark 快速上手 | WordCount的三种实现方式

    文章目录 一.搭建开发环境 二.使用Spark的套路 三.体验WordCount 四.配置log4j 一.搭建开发环境 打开idea创建一个Maven项目,打开pom.xml文件,添加以下依赖: &l ...

  2. 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

    视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...

  3. Spark WordCount 案例

    文章目录 Spark WordCount 案例 1.程序连接 Spark 2.WordCount 案例示例 3.复杂版 WordCount 4.Spark 框架Wordcount Spark Word ...

  4. AI专家一席谈:复用算法、模型、案例,AI Gallery带你快速上手应用开发

    摘要: 华为云社区邀请到了AI Gallery的负责人严博,听他谈一谈AI Gallery的设计初衷.经典案例以及未来规划. 本文分享自华为云社区<AI专家一席谈:复用算法.模型.案例,AI G ...

  5. python编程思维代码_Python编程快速上手——强口令检测算法案例分析

    本文实例讲述了Python强口令检测算法.分享给大家供大家参考,具体如下: 强口令检测 题目如下: 写一个函数,它使用正则表达式,确保传入的口令字符串是强口令.强口令定义:长度不少于8个字符,同时包含 ...

  6. 【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 | 新发出品 | 良心教程)

    文章目录 一.前言 二.插件下载 三.案例1:第三人称自由视角,Free Look character场景 1.场景演示 2.组件参数 2.1.CinemachineBrain:核心 2.2.Cine ...

  7. 【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 新发出品 良心教程)

    文章目录 一.前言 二.插件下载 三.案例1:第三人称自由视角,Free Look character场景 1.场景演示 2.组件参数 2.1.CinemachineBrain:核心 2.2.Cine ...

  8. python实操100例乘法表_Python编程快速上手——Excel表格创建乘法表案例分析

    本文实例讲述了Python Excel表格创建乘法表.分享给大家供大家参考,具体如下: 题目如下: 创建程序multiplicationTable.py,从命令行接受数字N,在一个Excel电子表格中 ...

  9. 第一章,安装spark集群,测试和运行wordcount 案例

    1.1下载spark 地址:https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.3.0/ 1.2上传解压: xiaoye@ubuntu: ...

最新文章

  1. 全球股市巨震,如何用深度学习预测股价?
  2. C语言的main函数到底怎么写的
  3. python爬取正确但不出文件_[求助] Python 爬虫爬取豆瓣_请不要害羞,语法没有报错,但是最终没有得到图片,请各位大神帮我看看,到底哪里出现了问题??急求...
  4. 简单使用Git和Github来管理自己的代码和读书笔记
  5. VMware vSphere 服务器虚拟化之二十七桌面虚拟化之View中使用Thinapp软件虚拟化
  6. 记一次PSP游戏文件(iso)提取BGM(cpk文件处理,无后缀音频文件格式转换,pmf文件转换)
  7. 开源物联网云平台 Thingsboard入门
  8. 程序员值得看的电影(20170420EDIT)
  9. oracle的lpad函数
  10. 爬取淘宝历史价格,通过请求接口,获取到数据
  11. html条形统计图,js实现条形统计图
  12. 软件智能:aaas系统 基于本体论的AI通用框架
  13. ofo“卖身”滴滴?共享单车开始进入下半场
  14. Python学习笔记--文件操作
  15. BZOJ:3441 乌鸦喝水
  16. ActionContext.getContext()的几种用法
  17. 手把手Excel图表美化(1)--仪表图
  18. 汉语言文学专业c学校,自考汉语言文学专业哪个学校好?
  19. Git自己分支合并dev分支
  20. java宝典_java宝典

热门文章

  1. 【 C 】预处理指令
  2. centos/linux扩容Swap分区
  3. bzoj 4237 稻草人
  4. CentOS 6.5使用yum快速搭建LAMP环境
  5. 什么是Java实例初始化块
  6. 烂泥:nginx同时支持asp.net与php
  7. 定位城市_北方城市如何利用GPS定位器减轻铲雪工作压力?
  8. UART的16倍频过采样和3倍频过采样
  9. DSP48E Slice
  10. UART接口与COM口的区别