Spark快速上手-WordCount案例
在此之前,我已经用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案例相关推荐
- Spark 快速上手 | WordCount的三种实现方式
文章目录 一.搭建开发环境 二.使用Spark的套路 三.体验WordCount 四.配置log4j 一.搭建开发环境 打开idea创建一个Maven项目,打开pom.xml文件,添加以下依赖: &l ...
- 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】
视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...
- Spark WordCount 案例
文章目录 Spark WordCount 案例 1.程序连接 Spark 2.WordCount 案例示例 3.复杂版 WordCount 4.Spark 框架Wordcount Spark Word ...
- AI专家一席谈:复用算法、模型、案例,AI Gallery带你快速上手应用开发
摘要: 华为云社区邀请到了AI Gallery的负责人严博,听他谈一谈AI Gallery的设计初衷.经典案例以及未来规划. 本文分享自华为云社区<AI专家一席谈:复用算法.模型.案例,AI G ...
- python编程思维代码_Python编程快速上手——强口令检测算法案例分析
本文实例讲述了Python强口令检测算法.分享给大家供大家参考,具体如下: 强口令检测 题目如下: 写一个函数,它使用正则表达式,确保传入的口令字符串是强口令.强口令定义:长度不少于8个字符,同时包含 ...
- 【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 | 新发出品 | 良心教程)
文章目录 一.前言 二.插件下载 三.案例1:第三人称自由视角,Free Look character场景 1.场景演示 2.组件参数 2.1.CinemachineBrain:核心 2.2.Cine ...
- 【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 新发出品 良心教程)
文章目录 一.前言 二.插件下载 三.案例1:第三人称自由视角,Free Look character场景 1.场景演示 2.组件参数 2.1.CinemachineBrain:核心 2.2.Cine ...
- python实操100例乘法表_Python编程快速上手——Excel表格创建乘法表案例分析
本文实例讲述了Python Excel表格创建乘法表.分享给大家供大家参考,具体如下: 题目如下: 创建程序multiplicationTable.py,从命令行接受数字N,在一个Excel电子表格中 ...
- 第一章,安装spark集群,测试和运行wordcount 案例
1.1下载spark 地址:https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.3.0/ 1.2上传解压: xiaoye@ubuntu: ...
最新文章
- 全球股市巨震,如何用深度学习预测股价?
- C语言的main函数到底怎么写的
- python爬取正确但不出文件_[求助] Python 爬虫爬取豆瓣_请不要害羞,语法没有报错,但是最终没有得到图片,请各位大神帮我看看,到底哪里出现了问题??急求...
- 简单使用Git和Github来管理自己的代码和读书笔记
- VMware vSphere 服务器虚拟化之二十七桌面虚拟化之View中使用Thinapp软件虚拟化
- 记一次PSP游戏文件(iso)提取BGM(cpk文件处理,无后缀音频文件格式转换,pmf文件转换)
- 开源物联网云平台 Thingsboard入门
- 程序员值得看的电影(20170420EDIT)
- oracle的lpad函数
- 爬取淘宝历史价格,通过请求接口,获取到数据
- html条形统计图,js实现条形统计图
- 软件智能:aaas系统 基于本体论的AI通用框架
- ofo“卖身”滴滴?共享单车开始进入下半场
- Python学习笔记--文件操作
- BZOJ:3441 乌鸦喝水
- ActionContext.getContext()的几种用法
- 手把手Excel图表美化(1)--仪表图
- 汉语言文学专业c学校,自考汉语言文学专业哪个学校好?
- Git自己分支合并dev分支
- java宝典_java宝典