人工智能与大数据技术精品系列教材

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

分享 推荐 0 收藏 11 阅读 1.0K
肖芳 , 张良均 (主编) 张天俊 , 卢滔 , 余祖伟 (副主编) 978-7-115-69680-9

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

"十四五"职业教育国家规划教材:国家级规划教材认证,第3版全面修订升级,已被全国高校广泛选用
三年迭代、全栈升级的第3版:全书升级至 Spark 3.5.1、Hadoop 3.3.6、Scala 2.13.16、Rocky 9.6、IntelliJ IDEA 2022.3.3、MySQL 8.0.30,技术栈对标当前企业生产环境
9个项目打通 Spark 完整生态:从 Spark Core RDD 编程到 Spark SQL 结构化处理、Spark Streaming 实时计算、Spark GraphX 图计算、Spark MLlib 机器学习,一本学全 Apache Spark 技术栈
项目任务式结构对标企业真实工作流程:手机号码归属地查询、员工薪资统计、竞赛网站日志分析、水稻品种审定数据分析、书籍热度实时计算、网页排名图计算、饮用水源合格性预测、广告流量作弊识别,每个项目即一个可复用的工程案例
新增"AI 编程插件"章节:将 AI 辅助编程引入 Spark 开发流程,紧贴行业最新实践

内容摘要

本书以项目任务为导向,较为全面地介绍Spark大数据技术的相关知识。全书共9个项目,每个项目均搭配有具体的任务,项目内容包括搭建Spark集群——Spark概述、查询手机号码信息——Scala基础、查询和统计员工薪资数据——Spark Shell编程、统计分析竞赛网站用户访问日志数据——Spark IDE编程、分析水稻品种审定数据——Spark SQL结构化数据文件处理、实时计算书籍热度——Spark Streaming实时计算框架、统计得分排名前10的网页——Spark GraphX图计算框架、饮用水源合格性预测——Spark MLlib机器学习算法库,以及广告检测的流量作弊识别——Spark综合实战。本书的大部分项目包含实训与课后习题,通过操作实践和练习,可以帮助读者巩固所学的内容。
本书可以作为高校大数据技术类专业的教材,也可作为大数据开发技术人员的参考书,以及大数据技术爱好者的自学用书。

目录

项目1 搭建Spark集群——Spark概述 1
学习目标 1
项目背景 1
思维导图 2
知识准备 2
1.1 Spark简介 2
1.1.1 Spark的特点 2
1.1.2 Spark生态圈 3
1.1.3 Spark的应用场景 4
1.2 Spark运行架构与原理 5
1.2.1 Spark架构 5
1.2.2 Spark作业运行流程 6
1.2.3 Spark核心数据集RDD 9
1.2.4 Spark核心原理 11
项目实施 13
任务1.1 搭建单机版环境 13
任务1.2 搭建单机伪分布式集群 14
任务1.3 搭建完全分布式集群 15
【项目小结】 18
【课后习题】 19

项目2 查询手机号码信息——Scala基础 20
学习目标 20
项目背景 20
思维导图 21
知识准备 22
2.1 安装与运行Scala 22
2.1.1 Scala语言 22
2.1.2 Scala特性 22
2.1.3 安装Scala 22
2.1.4 运行Scala 24
2.2 Scala基本语法 25
2.2.1 Scala数据类型 25
2.2.2 定义与使用常量、变量 27
2.2.3 使用运算符 27
2.2.4 定义与使用数组 29
2.2.5 定义与使用函数 30
2.3 Scala控制结构 33
2.3.1 使用if判断 33
2.3.2 使用for循环 34
2.4 Scala集合类型 36
2.4.1 定义与使用列表 36
2.4.2 定义与使用集合 38
2.4.3 定义与使用映射 39
2.4.4 定义与使用元组 39
2.4.5 使用函数组合器 39
2.5 Scala面向对象编程 41
2.5.1 定义Scala类 41
2.5.2 使用Scala单例模式 42
2.5.3 使用Scala模式匹配 43
2.5.4 读写文件 44
项目实施 45
任务2.1 识别号码类型 45
任务2.2 统计广州号码段数量 46
任务2.3 根据归属地对手机号码段分组 47
任务2.4 编写手机号码归属地信息查询程序 47
【项目小结】 48
【实训】 49
实训1 使用Scala编写函数过滤文本中的回文单词 49
实训2 使用Scala编程输出九九乘法表 49
【课后习题】 50

项目3 查询和统计员工薪资数据——Spark Shell编程 52
学习目标 52
项目背景 52
思维导图 53
知识准备 53
3.1 创建Spark RDD 53
3.1.1 通过内存中已有数据创建RDD 54
3.1.2 从外部存储系统中读取数据创建RDD 55
3.2 RDD基础操作 56
3.2.1 使用map()方法转换数据 56
3.2.2 使用sortBy()方法进行排序 56
3.2.3 使用collect()方法查询数据 57
3.2.4 使用flatMap()方法转换数据 58
3.2.5 使用take()方法获取数据 58
3.3 RDD进阶操作 59
3.3.1 使用filter()方法进行过滤 59
3.3.2 使用distinct()方法进行去重 59
3.3.3 使用简单的集合操作 60
3.4 键值对RDD操作 62
3.4.1 键值对RDD 62
3.4.2 创建键值对RDD 62
3.4.3 使用键值对RDD的keys与values方法 62
3.4.4 使用键值对RDD的reduceByKey()方法 63
3.4.5 使用键值对RDD的groupByKey()方法 63
3.5 RDD连接操作 64
3.5.1 使用join()方法连接两个RDD 64
3.5.2 使用zip()方法组合两个RDD 66
3.5.3 使用combineByKey()方法合并相同键的值 66
3.5.4 使用lookup()方法查找指定键的值 68
3.6 RDD文件读写 68
3.6.1 读取与存储JSON文件 68
3.6.2 读取与存储CSV文件 70
3.6.3 读取与存储SequenceFile文件 72
3.6.4 读取与存储ObjectFile文件 73
3.6.5 读取与存储纯文本文件 74
项目实施 75
任务3.1 读取员工薪资数据创建RDD 75
任务3.2 查询上半年实际薪资排名前3的员工信息 76
任务3.3 输出上半年或下半年实际薪资大于20万元的员工姓名 77
任务3.4 统计每位员工2023年的总实际薪资 77
任务3.5 查询每位员工2023年的月均实际薪资 78
任务3.6 将汇总后的员工薪资存储为文本文件 79
【项目小结】 80
【实训】 80
实训1 通过Spark编程统计某月份的客户总消费金额 80
实训2 通过Spark编程计算各城市的平均气温 81
【课后习题】 81

项目4 统计分析竞赛网站用户访问日志数据——Spark IDE编程 84
学习目标 84
项目背景 84
思维导图 85
知识准备 86
4.1 搭建Spark开发环境 86
4.1.1 下载与安装IntelliJ IDEA 86
4.1.2 Scala插件安装与使用 87
4.1.3 AI编程插件的安装与使用 90
4.1.4 配置Spark运行环境 93
4.1.5 运行Spark程序 95
4.2 Spark持久化和数据分区 102
4.2.1 设置RDD持久化(缓存) 102
4.2.2 设置数据分区 104
项目实施 107
任务4.1 计算竞赛网站每月的访问量 107
任务4.2 自定义分区保存 108
【项目小结】 110
【实训】 110
自定义分区器实现按人物标签进行数据区分 110
【课后习题】 111

项目5 分析水稻品种审定数据——Spark SQL结构化数据文件处理 114
学习目标 114
项目背景 114
思维导图 115
知识准备 115
5.1 Spark SQL简介 115
5.1.1 Spark SQL基本概念 116
5.1.2 配置Spark SQL 117
5.1.3 Spark SQL与Shell的交互 118
5.2 DataFrame基础操作 119
5.2.1 创建DataFrame对象 119
5.2.2 查看DataFrame数据 121
5.2.3 DataFrame查询操作 125
5.2.4 DataFrame输出操作 135
项目实施 137
任务5.1 获取数据 137
任务5.2 探索与预处理数据 138
任务5.3 统计分析数据内容 140
【项目小结】 141
【实训】 142
实训1 基于DataFrame实现教师教学质量统计分析 142
实训2 基于DataFrame实现学生成绩统计分析 143
【课后习题】 144

项目6 实时计算书籍热度——Spark Streaming实时计算框架 146
学习目标 146
项目背景 146
思维导图 147
知识准备 147
6.1 Spark Streaming简介 147
6.1.1 Spark Streaming框架 148
6.1.2 Spark Streaming运行原理 148
6.1.3 初步使用Spark Streaming 148
6.2 DStream编程模型及其基础操作 151
6.2.1 DStream编程模型 151
6.2.2 使用DStream转换操作 151
6.2.3 使用DStream窗口操作 153
6.2.4 使用DStream输出操作 155
项目实施 159
任务6.1 获取输入数据源 159
任务6.2 计算用户评分次数及平均评分 161
任务6.3 计算书籍被评分次数及平均评分 162
任务6.4 实时计算书籍热度 163
【项目小结】 165
【实训】 166
实训1 使用Spark Streaming实现课程实时查找 166
实训2 使用Spark Streaming实时统计广告点击量前3名 166
【课后习题】 168

项目7 统计得分排名前10的网页——Spark GraphX图计算框架 171
学习目标 171
项目背景 171
思维导图 172
知识准备 173
7.1 Spark GraphX简介 173
7.1.1 图的基本概念 173
7.1.2 图计算的应用 173
7.1.3 GraphX的基本概念 174
7.1.4 GraphX的发展 174
7.2 GraphX常用API 175
7.2.1 创建与存储图 175
7.2.2 查询与转换数据 179
7.2.3 转换结构与关联聚合数据 185
项目实施 191
任务7.1 构建网页结构图 191
任务7.2 计算网页得分 192
任务7.3 找出排名前10的网页 193
任务7.4 完整程序实现 194
【项目小结】 195
【实训】 196
实训1 使用GraphX实现家庭关系网络图构建及查询 196
实训2 使用GraphX统计最具影响力用户 197
【课后习题】 198

项目8 饮用水源合格性预测——Spark MLlib机器学习算法库 201
学习目标 201
项目背景 201
思维导图 202
知识准备 203
8.1 机器学习算法简介 203
8.1.1 机器学习概念 203
8.1.2 机器学习算法 203
8.2 使用Spark MLlib机器学习算法库 204
8.2.1 Spark MLlib简介 204
8.2.2 Spark MLlib发展历史 204
8.2.3 算法与算法包 205
8.2.4 Spark MLlib中的模型评估 219
项目实施 219
任务8.1 读取数据 219
任务8.2 探索性数据分析 220
任务8.3 数据标准化 222
任务8.4 基于随机森林实现饮用水源合格性预测 222
【项目小结】 223
【实训】 223
实训1 使用K-Means划分电影热度等级 223
实训2 使用逻辑回归算法实现员工离职预测 224
【课后习题】 225

项目9 广告检测的流量作弊识别——Spark综合实战 227
学习目标 227
项目背景 227
思维导图 228
项目实施 228
任务9.1 分析需求 228
9.1.1 常见的流量作弊方式 228
9.1.2 需求分析 229
任务9.2 探索分析广告流量数据 230
9.2.1 数据说明 230
9.2.2 基础探索数据 231
9.2.3 探索虚假流量的数据特征 234
任务9.3 预处理数据并构建特征 238
9.3.1 删除缺失值字段 238
9.3.2 构建广告流量作弊识别特征 239
任务9.4 构建与评估分类模型 243
9.4.1 构建与评估逻辑回归模型 243
9.4.2 构建与评估随机森林模型 245
9.4.3 模型加载 247
【项目小结】 248

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

肖芳,女,高级工程师。2003年进入广东水利电力职业技术学院计算机信息工程系(现为大数据与人工智能学院学院),担任计算机信息管理、大数据技术专业专任教师。2018年作为主编编写出版《Spark大数据技术与应用》,2020年12月被评为教育部“十三五”职业教育国家规划教材。2022年作为主编编写出版《Spark大数据技术与应用(第2版)(微课版)》,2024年6月被评为教育部“十四五”职业教育国家规划教材。曾获中国科学院广州分院广东省科学院科技成果开发二等奖,在各类期刊上发表过多篇论文,获得3项软件著作权。

同系列书

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部