大数据创新人才培养系列 Spark编程基础:Python版
作者: 林子雨 主编
出版时间: 2020年版
内容简介
本书以Python作为开发Spark应用程序的编程语言,系统介绍了Spark编程的基础知识。全书共8章,内容包括大数据技术概述、Spark的设计与运行原理、Spark环境搭建和使用方法、RDD编程、Spark SQL、Spark Streaming、Structured Streaming、Spark MLlib等。
目录
第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 概述 101
5.3 DataFrame 的创建 102
5.4 DataFrame 的保存 103
5.5 DataFrame 的常用操作 104
5.6 从RDD 转换得到DataFrame 105
5.6.1 利用反射机制推断RDD 模式 106
5.6.2 使用编程方式定义RDD 模式 107
5.7 使用Spark SQL 读写数据库 108
5.7.1 准备工作 109
5.7.2 读取MySQL 数据库中的数据 109
5.7.3 向MySQL 数据库写入数据 110
5.8 本章小结 111
5.9 习题 112
实验4 Spark SQL 编程初级实践 112
第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
参考文献 235