《Spark编程基础(Python版)》教材目录
林子雨,郑海山,赖永炫 编著
E-mail: ziyulin@xmu.edu.cn
ISBN:978-7-115-52439-3 人民邮电出版社
(访问教材官网)
《Spark编程基础(Python版)》教材目录
林子雨,郑海山,赖永炫 编著
ISBN:978-7-115-52439-3 人民邮电出版社
第1章 大数据技术概述……………….1
1.1 大数据概念与关键技术…………………..2
1.1.1 大数据的概念…………………………….2
1.1.2 大数据关键技术…………………………2
1.2 代表性大数据技术…………………………4
1.2.1 Hadoop……………………………………..4
1.2.2 Spark………………………………………..8
1.2.3 Flink………………………………………..10
1.2.4 Beam……………………………………….11
1.3 编程语言的选择………………………….12
1.4 在线资源……………………………………13
1.5 本章小结……………………………………14
1.6 习题………………………………………….14
实验1 Linux系统的安装和常用命令……15
第2章 Spark的设计与运行原理..17
2.1 概述………………………………………….18
2.2 Spark生态系统…………………………..19
2.3 Spark运行架构…………………………..21
2.3.1 基本概念………………………………….21
2.3.2 架构设计………………………………….21
2.3.3 Spark运行基本流程…………………22
2.3.4 RDD的设计与运行原理……………24
2.4 Spark的部署方式……………………….33
2.5 本章小结……………………………………34
2.6 习题………………………………………….34
第3章 Spark环境搭建和使用……35
3.1 安装Spark…………………………………36
3.1.1 基础环境………………………………….36
3.1.2 下载安装文件…………………………..36
3.1.3 配置相关文件…………………………..38
3.1.4 验证Spark是否安装成功………..39
3.1.5 Spark和Hadoop的交互………….39
3.2 在pyspark中运行代码…………………40
3.2.1 pyspark命令…………………………..40
3.2.2 启动pyspark…………………………..41
3.3 开发Spark独立应用程序……………..42
3.3.1 编写程序………………………………….42
3.3.2 通过spark-submit运行程序…..43
3.4 Spark集群环境搭建…………………….44
3.4.1 集群概况………………………………….44
3.4.2 搭建Hadoop集群……………………44
3.4.3 在集群中安装Spark………………..45
3.4.4 配置环境变量…………………………..45
3.4.5 Spark的配置…………………………..46
3.4.6 启动Spark集群………………………47
3.4.7 关闭Spark集群………………………47
3.5 在集群上运行Spark应用程序……….48
3.5.1 启动Spark集群………………………48
3.5.2 采用独立集群管理器………………..48
3.5.3 采用Hadoop YARN管理器……..49
3.6 本章小结…………………………………….51
3.7 习题…………………………………………..51
实验2 Spark和Hadoop的安装………….51
第4章 RDD编程……………………….53
4.1 RDD编程基础…………………………….54
4.1.1 RDD创建………………………………..54
4.1.2 RDD操作…………………………………56
4.1.3 持久化……………………………………..63
4.1.4 分区…………………………………………64
4.1.5 一个综合实例…………………………..69
4.2 键值对RDD……………………………….71
4.2.1 键值对RDD的创建………………….71
4.2.2 常用的键值对转换操作…………….72
4.2.3 一个综合实例…………………………..78
4.3 数据读写……………………………………79
4.3.1 文件数据读写…………………………..79
4.3.2 读写HBase数据………………………82
4.4 综合实例……………………………………86
4.4.1 求TOP值………………………………..86
4.4.2 文件排序………………………………….89
4.4.3 二次排序………………………………….91
4.5 本章小结……………………………………94
4.6 习题………………………………………….95
实验3 RDD编程初级实践…………………95
第5章 Spark SQL……………………….98
5.1 Spark SQL简介………………………….99
5.1.1 从Shark说起………………………….99
5.1.2 Spark SQL架构……………………100
5.1.3 为什么推出Spark SQL…………..101
5.2 DataFrame概述……………………….102
5.3 DataFrame的创建…………………….102
5.4 DataFrame的保存…………………….103
5.5 DataFrame的常用操作………………104
5.6 从RDD转换得到DataFrame……..106
5.6.1 利用反射机制推断RDD模式….106
5.6.2 使用编程方式定义RDD模式….107
5.7 使用Spark SQL读写数据库……….109
5.7.1 准备工作………………………………..109
5.7.2 读取MySQL数据库中的数据………………………………………109
5.7.3 向MySQL数据库写入数据……110
5.8 本章小结…………………………………..112
5.9 习题…………………………………………112
实验4 Spark SQL编程初级实践……….113
第6章 Spark Streaming……………..115
6.1 流计算概述……………………………….116
6.1.1 静态数据和流数据………………….116
6.1.2 批量计算和实时计算………………117
6.1.3 流计算概念…………………………….117
6.1.4 流计算框架…………………………….118
6.1.5 流计算处理流程……………………..119
6.2 Spark Streaming……………………….121
6.2.1 Spark Streaming设计…………..121
6.2.2 Spark Streaming与 Storm的对比………………………..122
6.2.3 从“Hadoop+Storm” 架构转向Spark架构……………..122
6.3 DStream操作概述……………………..123
6.3.1 Spark Streaming工作机制…….123
6.3.2 编写Spark Streaming程序的 基本步骤……………………………….124
6.3.3 创建StreamingContext对象…124
6.4 基本输入源……………………………….125
6.4.1 文件流……………………………………125
6.4.2 套接字流………………………………..127
6.4.3 RDD队列流…………………………..131
6.5 高级数据源……………………………….133
6.5.1 Kafka简介…………………………….133
6.5.2 Kafka准备工作……………………..133
6.5.3 Spark准备工作……………………..135
6.5.4 编写Spark Streaming 程序使用Kafka数据源………….136
6.6 转换操作………………………………….137
6.6.1 DStream无状态转换操作………137
6.6.2 DStream有状态转换操作………138
6.7 输出操作………………………………….143
6.7.1 把DStream输出到 文本文件中…………………………….143
6.7.2 把DStream写入到 关系数据库中…………………………145
6.8 本章小结………………………………….147
6.9 习题………………………………………..147
实验5 Spark Streaming编程 初级实践…………………………….147
第7章 Structured Streaming………150
7.1 概述………………………………………..151
7.1.1 基本概念………………………………..151
7.1.2 两种处理模型…………………………152
7.1.3 Structured Streaming和 Spark SQL、Spark Streaming 的关系……………………………………154
7.2 编写Structured Streaming 程序的基本步骤………………………..154
7.2.1 实现步骤………………………………..154
7.2.2 测试运行………………………………..156
7.3 输入源……………………………………..158
7.3.1 File源……………………………………158
7.3.2 Kafka源………………………………..163
7.3.3 Socket源……………………………….167
7.3.4 Rate源…………………………………..167
7.4 输出操作………………………………….169
7.4.1 启动流计算…………………………….169
7.4.2 输出模式………………………………..170
7.4.3 输出接收器…………………………….170
7.5 容错处理………………………………….173
7.5.1 从检查点恢复故障………………….173
7.5.2 故障恢复中的限制………………….173
7.6 迟到数据处理…………………………….174
7.6.1 事件时间………………………………..174
7.6.2 迟到数据………………………………..175
7.6.3 水印……………………………………….176
7.6.4 多水印规则…………………………….177
7.6.5 处理迟到数据的实例………………178
7.7 查询的管理和监控……………………..181
7.7.1 管理和监控的方法………………….181
7.7.2 一个监控的实例……………………..182
7.8 本章小结…………………………………..184
7.9 习题…………………………………………185
实验6 Structured Streaming 编程实践……………………………..185
第8章 Spark MLlib…………………..187
8.1 基于大数据的机器学习……………….188
8.2 机器学习库MLlib概述………………..189
8.3 基本数据类型…………………………….190
8.3.1 本地向量………………………………..190
8.3.2 标注点……………………………………191
8.3.3 本地矩阵………………………………..192
8.4 机器学习流水线…………………………193
8.4.1 流水线的概念…………………………193
8.4.2 流水线工作过程……………………..193
8.5 特征提取、转换和选择……………….195
8.5.1 特征提取………………………………..195
8.5.2 特征转换………………………………..199
8.5.3 特征选择………………………………..204
8.5.4 局部敏感哈希…………………………205
8.6 分类算法…………………………………..205
8.6.1 逻辑斯蒂回归分类器………………206
8.6.2 决策树分类器…………………………212
8.7 聚类算法…………………………………..217
8.7.1 K-Means聚类算法………………..218
8.7.2 GMM聚类算法………………………220
8.8 协同过滤算法……………………………223
8.8.1 推荐算法的原理……………………..223
8.8.2 ALS算法……………………………….224
8.9 模型选择和超参数调整……………….228
8.9.1 模型选择工具…………………………229
8.9.2 用交叉验证选择模型………………229
8.10 本章小结…………………………………232
8.11 习题……………………………………….233
实验7 Spark机器学习库MLlib 编程实践……………………………..233