大数据技术精品系列教材

Spark大数据技术与应用(第2版)(微课版)

“十四五”职业教育国家规划教材
分享 推荐 3 收藏 110 阅读 26.2K
肖芳 , 张良均 (主编) 张天俊 , 席红旗 , 王宏刚 (副主编) 978-7-115-59510-2

关于本书的内容有任何问题,请联系 初美呈

1. 以任务为导向,全面讲解Spark基础知识
2. 随书附带案例数据及代码,方便读者系统学习并动手实践
3. 实战案例丰富
4. 配有微课视频,学习更方便
5. “十四五”职业教育国家规划教材

内容摘要

“十四五”职业教育国家规划教材
本书以任务为导向,较为全面地介绍Spark大数据技术的相关知识。全书共9章,具体内容包括Spark概述、Scala基础、Spark编程基础、Spark编程进阶、Spark SQL—结构化数据文件处理、Spark Streaming—实时计算框架、Spark GraphX—图计算框架、Spark MLlib—功能强大的算法库,以及项目案例—广告检测的流量作弊识别。本书的大部分章节包含实训与课后习题,通过练习和实践操作,可以帮助读者巩固所学的内容。
本书可以作为高校大数据技术类专业教材,也可作为大数据技术爱好者的自学用书。

目录

第 1章 Spark概述 1
任务1.1 认识Spark 1
1.1.1 了解Spark的发展历史 1
1.1.2 了解Spark的特点 2
1.1.3 认识Spark的生态圈 4
1.1.4 了解Spark的应用场景 5
任务1.2 搭建Spark集群 6
1.2.1 搭建单机版集群 6
1.2.2 搭建单机伪分布式集群 6
1.2.3 搭建完全分布式集群 7
任务1.3 了解Spark运行架构与原理 11
1.3.1 了解Spark架构 11
1.3.2 了解Spark作业运行流程 12
1.3.3 了解Spark核心数据集RDD 15
1.3.4 了解Spark核心原理 17
小结 19
课后习题 19

第 2章 Scala基础 20
任务2.1 安装与运行Scala 21
2.1.1 了解Scala语言 21
2.1.2 了解Scala特性 21
2.1.3 安装Scala 22
2.1.4 运行Scala 24
任务2.2 定义函数识别号码类型 24
2.2.1 了解数据类型 25
2.2.2 定义与使用常量、变量 25
2.2.3 使用运算符 26
2.2.4 定义与使用数组 27
2.2.5 定义与使用函数 30
2.2.6 任务实现 32
任务2.3 统计广州号码段数量 33
2.3.1 使用if判断 34
2.3.2 使用for循环 35
2.3.3 任务实现 36
任务2.4 根据归属地对手机号码段进行分组 37
2.4.1 定义与使用列表 37
2.4.2 定义与使用集合 39
2.4.3 定义与使用映射 39
2.4.4 定义与使用元组 40
2.4.5 使用函数组合器 40
2.4.6 任务实现 41
任务2.5 编写手机号码归属地信息查询程序 42
2.5.1 定义Scala类 42
2.5.2 使用Scala单例模式 44
2.5.3 使用Scala模式匹配 45
2.5.4 读写文件 46
2.5.5 任务实现 46
小结 47
实训 47
实训1 使用Scala编写函数过滤文本中的回文单词 47
实训2 使用Scala编程输出九九乘法表 48
课后习题 49

第3章 Spark编程基础 51
任务3.1 读取员工薪资数据创建RDD 52
3.1.1 从内存中读取数据创建RDD 52
3.1.2 从外部存储系统中读取数据创建RDD 53
3.1.3 任务实现 54
任务3.2 查询上半年实际薪资排名前3的员工信息 55
3.2.1 使用map()方法转换数据 55
3.2.2 使用sortBy()方法进行排序 55
3.2.3 使用collect()方法查询数据 56
3.2.4 使用flatMap()方法转换数据 57
3.2.5 使用take()方法查询某几个值 57
3.2.6 任务实现 58
任务3.3 查询上半年或下半年实际薪资大于20万元的员工姓名 59
3.3.1 使用union()方法合并多个RDD 59
3.3.2 使用filter()方法进行过滤 60
3.3.3 使用distinct()方法进行去重 60
3.3.4 使用简单的集合操作 60
3.3.5 任务实现 62
任务3.4 输出每位员工2020年的总实际薪资 63
3.4.1 了解键值对RDD 63
3.4.2 创建键值对RDD 64
3.4.3 使用键值对RDD的keys和values方法 64
3.4.4 使用键值对RDD的reduceByKey()方法 65
3.4.5 使用键值对RDD的groupByKey()方法 66
3.4.6 任务实现 66
任务3.5 查询每位员工2020年的月均实际薪资 67
3.5.1 使用join()方法连接两个RDD 67
3.5.2 使用zip()方法组合两个RDD 69
3.5.3 使用combineByKey()方法合并相同键的值 70
3.5.4 使用lookup()方法查找指定键的值 71
3.5.5 任务实现 71
任务3.6 存储汇总后的员工薪资为文本文件 72
3.6.1 读取与存储JSON文件 72
3.6.2 读取与存储CSV文件 75
3.6.3 读取与存储SequenceFile文件 78
3.6.4 读取与存储文本文件 79
3.6.5 任务实现 80
小结 82
实训 82
实训1 通过Spark编程统计某月份的客户总消费金额 82
实训2 通过Spark编程计算各城市的平均气温 82
课后习题 83

第4章 Spark编程进阶 86
任务4.1 搭建Spark开发环境 87
4.1.1 下载与安装IntelliJ IDEA 87
4.1.2 Scala插件安装与使用 89
4.1.3 配置Spark运行环境 94
4.1.4 运行Spark程序 96
任务4.2 统计分析竞赛网站用户访问日志数据 104
4.2.1 设置RDD持久化 104
4.2.2 设置数据分区 105
4.2.3 计算竞赛网站每月的访问量 109
4.2.4 任务实现 111
小结 112
实训 自定义分区器实现按人物标签进行数据区分 112
课后习题 113

第5章 Spark SQL—结构化数据文件处理 116
任务5.1 认识Spark SQL 117
5.1.1 了解Spark SQL基本概念 117
5.1.2 配置Spark SQL 117
5.1.3 了解Spark SQL与Shell交互 119
任务5.2 掌握DataFrame基础操作 120
5.2.1 创建DataFrame对象 120
5.2.2 查看DataFrame数据 122
5.2.3 掌握DataFrame查询操作 125
5.2.4 掌握DataFrame输出操作 134
任务5.3 探索分析房屋售价数据 136
5.3.1 获取数据 136
5.3.2 探索字段值分布 137
5.3.3 统计各季度房屋销量和销售额 139
5.3.4 探索分析房屋评分 141
5.3.5 探索修缮过的房屋房龄分布 142
5.3.6 任务实现 143
小结 145
实训 146
实训1 基于DataFrame实现老师教学质量统计分析 146
实训2 基于DataFrame实现学生成绩统计分析 147
课后习题 148

第6章 Spark Streaming—实时计算框架 150
任务6.1 初识Spark Streaming 151
6.1.1 了解Spark Streaming基本概念 151
6.1.2 了解Spark Streaming运行原理 151
6.1.3 初步使用Spark Streaming 152
任务6.2 掌握DStream基础操作 155
6.2.1 了解DStream编程模型 155
6.2.2 使用DStream转换操作 155
6.2.3 使用DStream窗口操作 157
6.2.4 使用DStream输出操作 160
任务6.3 实现书籍热度实时计算 165
6.3.1 获取输入数据源 165
6.3.2 计算用户评分次数及平均评分 168
6.3.3 计算书籍被评分次数及平均评分 169
6.3.4 实时计算书籍热度 171
6.3.5 任务实现 172
小结 174
实训 174
实训1 使用Spark Streaming实现课程实时查找 174
实训2 使用Spark Streaming实时统计广告点击量前3名 175
课后习题 176

第7章 Spark GraphX—图计算框架 179
任务7.1 认识Spark GraphX 180
7.1.1 了解图的基本概念 180
7.1.2 了解图计算的应用 181
7.1.3 了解GraphX的基础概念 181
7.1.4 了解GraphX的发展历程 181
任务7.2 了解GraphX常用API 182
7.2.1 创建与存储图 182
7.2.2 查询与转换数据 188
7.2.3 转换结构与关联聚合数据 195
任务7.3 统计网页价值排名前10的网页 203
7.3.1 构建网页结构图 203
7.3.2 计算网页得分 204
7.3.3 找出排名前10的网页 204
7.3.4 任务实现 205
小结 207
实训 207
实训1 使用Spark GraphX实现家庭关系网络图构建及查询 207
实训2 使用Spark GraphX统计最具影响力用户 208
课后习题 210

第8章 Spark MLlib—功能强大的算法库 213
任务8.1 了解MLlib算法库 215
8.1.1 了解机器学习算法 215
8.1.2 使用MLlib 216
任务8.2 使用决策树算法实现网络攻击类型识别 232
8.2.1 分析思路 232
8.2.2 探索分析数据 233
8.2.3 数据特征处理 236
8.2.4 MLlib实现决策树 238
8.2.5 任务实现 240
小结 243
实训 243
实训1 使用K-Means划分电影热度等级 243
实训2 使用逻辑回归算法实现提升员工工作满意度 244
课后习题 245

第9章 项目案例—广告检测的流量作弊识别 248
任务9.1 分析需求 248
9.1.1 常见的广告流量作弊方式 249
9.1.2 分析需求 249
任务9.2 探索分析广告流量数据 250
9.2.1 数据说明 250
9.2.2 基础探索数据 251
9.2.3 探索作弊流量的数据特征 255
任务9.3 预处理数据并构建特征 259
9.3.1 删除缺失值字段 259
9.3.2 构建广告流量作弊识别特征 260
任务9.4 构建与评估分类模型 265
9.4.1 构建与评估逻辑回归模型 265
9.4.2 构建与评估随机森林模型 267
9.4.3 模型加载 269
小结 270

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

肖芳,女,高级工程师。大学毕业后从事计算机软件的研究、设计、开发、实施等方面近十年,具有多年计算机软件开发与软件项目管理经验。后进入广东水利电力职业技术学院计算机系(目前为大数据与人工智能学院)担任专业教师,担任过大数据数学基础,Spark大数据快速运算、智能推荐等多门课程教学工作,曾主持和参加过多次科技厅局科研课题,负责和参加过十几项横向项目,获得过中国科学院广州分院、广东省科学院科技成果开发二等奖。在各类期刊上发表过多篇论文。指导学生毕业设计获得过学院毕业设计特别指导奖。
张良均,资深大数据专家,广东泰迪智能科技股份有限公司董事长,国家科技部入库技术专家,教育部全国专业学位水平评估专家,工信部教育与考试中心入库专家,中国工业与应用数学学会理事,广东省工业与应用数学学会副理事长,广东省高等职业教育教学指导委员会委员,华南师范大学、中南财经政法大学等40余所高校校外硕导或兼职教授,泰迪杯全国数据挖掘挑战赛发起人。曾在国内外重要学术刊物上发表学术论文10余篇,主导编写图书专著60余部,其中获普通高等教育“十一五”规划教材一部,“十三五”职业教育国家规划教材一部;参与标准建设4项,主持国家级课题1项、省部级课题4项。获得SAS、SPSS数据挖掘认证及Hadoop开发工程师证书,具有信访、电力、电信、银行、制造企业、电子商务和电子政务的项目经验和行业背景,并荣获中国产学研合作促进奖、中国南方电网公司发明专利一等奖、广东省农业技术推广二等奖、广州市荔湾区科学技术进步奖。

推荐用户

同系列书

  • Power BI数据分析与可视化(第2版)(微课版)

    陈翠松 张良均 潘强 曾确令 张尚佳

    本书以项目为导向,以任务为驱动,全面地介绍数据分析与可视化的流程,以及 Power BI 数据分析与可视化的应...

    ¥49.80
  • 大数据导论

    林涛 张良均 李微 葛苏慧 胡晓东

    本书以大数据处理技术涉及的主要流程为主线,深入浅出地介绍大数据相关的基础知识。本书条理清晰、重点突出,内容循序...

    ¥49.80
  • Spark大数据分析实务

    郑浩森 张荣 张良均 杨树例 陈国珍

    本书以Spark大数据分析的常用技术与真实项目相结合的方式,深入浅出地介绍Spark大数据分析的重要内容。全书...

    ¥59.80
  • PySpark大数据分析与应用

    戴刚 张良均 桂友武 李晓英 李晓丹

    本书以Python作为开发语言,系统介绍PySpark开发环境搭建流程及基于PySpark进行大数据分析的 相...

    ¥69.80
  • Hive大数据存储与处理

    何煌 张良均 孙一铭 胡健 陈翠松

    本书以广电大数据案例为主线,系统介绍数据仓库Hive存储和初步处理方法的相关知识。本书条理清楚、重点突出,内容...

    ¥59.80

购买本书用户

相关图书

  • ECharts数据可视化

    本书是一本采用任务驱动式体例编写的ECharts数据可视化技术教材,以通俗易懂的语言和丰富实用的任务,帮助读者...

    ¥59.80
  • 区块链技术及应用(微课版)

    郝兴伟 梁志勇

    为了适应Web 3.0时代下区块链技术发展的新趋势,同时培养高素质的区块链技术人才,编者精选了区块链的相关内容...

    ¥69.80
  • Python编程基础(项目式微课版)

    王健

    本书根据高等院校应用技术型人才培养的目标编写,适合案例学习和模块化教学相结合的教学方式。本书以真实企业开发案例...

    ¥56.00
  • 人工智能云平台部署与开发(微课版)

    易海博

    本书涵盖云计算和人工智能两大领域的内容,着重讲解人工智能应用在云平台上的部署与开发。全书共7个项目,分别介绍云...

    ¥49.80
  • 云计算导论(微课版)

    荆于勤 石慧霞 吴锡微 龚秀波 姚骏屏

    本书是一本全面介绍云计算基本概念、常用技术与应用的项目化教材。本书分为3篇,分别是初识云计算、体验云计算和业务...

    ¥59.80
单击此处加入人邮社数据科学教师服务群(大数据&人工智能&区块链),共同探讨交流
人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部