新書推薦:
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
273.7
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
55.2
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:HK$
82.8
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:HK$
89.7
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
67.9
《
周易
》
售價:HK$
45.8
《
东南亚的传统与发展
》
售價:HK$
69.0
《
乾隆制造
》
售價:HK$
87.4
|
編輯推薦: |
【内容特点】
(1)内容全面,结构合理:每章配有本章小结、习题和实验。
(2)案例丰富,代码详尽:结合案例讲解编程方法和技术,每段代码重要节点都有详细注释。
【资源特点】重点难点知识微课,配套PPT、程序源代码、习题答案等。
【服务特点】作者提供QQ服务群等支持,定期举办直播进行教学培训。
|
內容簡介: |
本书以Python作为开发Spark应用程序的编程语言,系统介绍了Spark编程的基础知识。全书共9章,内容包括大数据技术概述、Spark的设计与运行原理、大数据实验环境搭建、Spark环境搭建和使用方法、RDD编程、Spark SQL、Spark Streaming、Structured Streaming和Spark MLlib等。本书安排了入门级的编程实践内容,以助读者更好地学习和掌握Spark编程方法。本书免费提供全套在线教学资源,包括PPT课件、习题答案、源代码、数据集、微课视频、上机实验指南等。
本书可以作为高等院校计算机、软件工程、数据科学与大数据技术等专业的进阶级大数据课程教材,用于Spark编程实践教学,也可以供相关技术人员参考。
|
關於作者: |
林子雨(1978-),男,博士(毕业于北京大学),国内高校知名大数据教师,厦门大学计算机科学系副教授,厦门大学信息学院实验教学中心主任,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员,中国高校首个“数字教师”提出者和建设者。厦门大学2013年度、2017年度和2020年度奖教金获得者,获评“厦门大学2019年度本科教学示范岗”,入选“2021年高校计算机专业优秀教师奖励计划”。2013年开始在厦门大学开设大数据课程,建设了国内高校首个大数据课程公共服务平台,平台累计网络访问量超过1500万次,成为全国高校大数据教学知名品牌,并荣获“2018年福建省教学成果二等奖”和“2018年厦门大学教学成果特等奖”,主持的课程《大数据技术原理与应用》获评“2018年国家精品在线开放课程”、“2020年国家级线上一流本科课程”和“2021年福建省线上线下混合一流本科课程”,主持的课程《Spark编程基础》获评“2020年福建省线上一流本科课程”。
|
目錄:
|
目录
第1章 大数据技术概述 1
1.1 大数据概念与关键技术 1
1.1.1 大数据概念 1
1.1.2 大数据关键技术 2
1.2 代表性大数据技术 3
1.2.1 Hadoop 3
1.2.2 Spark 7
1.2.3 Flink 9
1.2.4 Beam 11
1.3 编程语言的选择 12
1.4 在线资源 13
1.5 本章小结 14
1.6 习题 14
第2章 Spark的设计与运行原理 15
2.1 概述 15
2.2 Spark生态系统 16
2.3 Spark运行架构 18
2.3.1 基本概念 18
2.3.2 架构设计方法 18
2.3.3 Spark运行的基本流程 19
2.3.4 RDD的设计与运行原理 20
2.4 Spark部署方式 29
2.5 本章小结 30
2.6 习题 30
第3章 大数据实验环境搭建 31
3.1 Linux操作系统的安装 31
3.1.1 下载安装文件 31
3.1.2 Linux操作系统的安装方式 32
3.1.3 虚拟机和Linux操作系统的安装 33
3.2 Hadoop的安装 39
3.2.1 Hadoop简介 39
3.2.2 安装Hadoop前的准备工作 40
3.2.3 Hadoop的3种安装模式 42
3.2.4 下载Hadoop安装文件 42
3.2.5 单机模式配置 43
3.2.6 伪分布式模式配置 43
3.2.7 分布式模式配置 47
3.3 MySQL的安装 57
3.3.1 执行安装命令 57
3.3.2 启动MySQL服务 58
3.3.3 进入MySQL Shell界面 58
3.3.4 解决MySQL出现的中文乱码问题 58
3.4 Kafka的安装 60
3.4.1 Kafka简介 60
3.4.2 Kafka的安装和使用 60
3.5 Anaconda的安装和使用方法 61
3.6 本章小结 63
实验1 Linux、Hadoop和MySQL的安装与使用 64
第4章 Spark环境搭建和使用方法 66
4.1 安装Spark(Local模式) 66
4.1.1 基础环境 66
4.1.2 下载安装文件 67
4.1.3 配置相关文件 67
4.1.4 验证Spark是否安装成功 68
4.2 在PySpark中运行代码 68
4.2.1 pyspark命令 68
4.2.2 启动PySpark 69
4.3 使用spark-submit命令提交运行程序 70
4.4 Spark集群环境搭建(Standalone模式) 70
4.4.1 集群概况 71
4.4.2 搭建Hadoop集群 71
4.4.3 安装Anaconda3 71
4.4.4 在集群中安装Spark 72
4.4.5 配置环境变量 72
4.4.6 Spark的配置 72
4.4.7 启动Spark集群 73
4.4.8 关闭Spark集群 74
4.5 在集群上运行Spark应用程序 75
4.5.1 启动Spark集群 75
4.5.2 提交运行程序 75
4.6 Spark on YARN模式 76
4.6.1 概述 76
4.6.2 Spark on YARN模式的部署 77
4.6.3 采用YARN模式运行PySpark 77
4.6.4 通过spark-submit命令提交程序到YARN集群 78
4.6.5 Spark on YARN的两种部署模式 78
4.7 安装PySpark类库 79
4.7.1 类库与框架的区别 79
4.7.2 PySpark类库的安装 80
4.8 开发Spark独立应用程序 80
4.8.1 编写程序 80
4.8.2 通过spark-submit运行程序 81
4.9 PyCharm的安装和使用 81
4.9.1 安装PyCharm 81
4.9.2 使用PyCharm开发Spark程序 87
4.10 本章小结 89
4.11 习题 89
实验2 Spark的安装和使用 89
第5章 RDD编程 91
5.1 RDD编程基础 91
5.1.1 RDD创建 91
5.1.2 RDD操作 93
5.1.3 持久化 104
5.1.4 分区 105
5.1.5 综合实例 109
5.2 键值对RDD 110
5.2.1 键值对RDD的创建 111
5.2.2 常用的键值对转换操作 111
5.2.3 综合实例 116
5.3 数据读写 117
5.3.1 本地文件系统的数据读写 117
5.3.2 分布式文件系统HDFS的数据读写 118
5.3.3 读写MySQL数据库 119
5.4 综合实例 120
5.4.1 求TOP值 120
5.4.2 文件排序 124
5.4.3 二次排序 126
5.5 本章小结 129
5.6 习题 129
实验3 RDD编程初级实践 130
第6章 Spark SQL 133
6.1 Spark SQL简介 133
6.1.1 从Shark说起 133
6.1.2 Spark SQL架构 135
6.1.3 为什么推出Spark SQL 135
6.1.4 Spark SQL的特点 136
6.1.5 Spark SQL简单编程实例 136
6.2 结构化数据DataFrame 137
6.2.1 DataFrame概述 137
6.2.2 DataFrame的优点 138
6.3 DataFrame的创建和保存 139
6.3.1 Parquet 139
6.3.2 JSON 139
6.3.3 CSV 140
6.3.4 文本文件 141
6.3.5 序列集合 141
6.4 DataFrame的基本操作 142
6.4.1 DSL语法风格 142
6.4.2 SQL语法风格 146
6.5 从RDD转换得到DataFrame 148
6.5.1 利用反射机制推断RDD模式 148
6.5.2 使用编程方式定义RDD模式 149
6.6 使用Spark SQL读写数据库 150
6.6.1 准备工作 150
6.6.2 读取MySQL数据库中的数据 151
6.6.3 向MySQL数据库写入数据 152
6.7 PySpark和pandas的整合 153
6.7.1 PySpark和pandas进行整合的可行性 153
6.7.2 pandas数据结构 154
6.7.3 实例1:两种DataFrame之间的相互转换 155
6.7.4 实例2:使用自定义聚合函数 156
6.8 综合实例 157
6.9 本章小结 159
6.10 习题 159
实验4 Spark SQL编程初级实践 160
第7章 Spark Streaming 162
7.1 流计算概述 162
7.1.1 静态数据和流数据 162
7.1.2 批量计算和实时计算 163
7.1.3 什么是流计算 164
7.1.4 流计算框架 164
7.1.5 流计算处理流程 165
7.2 Spark Streaming概述 166
7.2.1 Spark Streaming设计 167
7.2.2 Spark Streaming与Storm的对比 168
7.2.3 从“Hadoop Storm”架构转向Spark架构 168
7.3 DStream操作概述 169
7.3.1 Spark Streaming工作机制 169
7.3.2 编写Spark Streaming程序的基本步骤 170
7.3.3 创建StreamingContext对象 170
7.4 基本输入源 170
7.4.1 文件流 170
7.4.2 套接字流 172
7.4.3 RDD队列流 176
7.5 转换操作 177
7.5.1 DStream无状态转换操作 177
7.5.2 DStream有状态转换操作 177
7.6 输出操作 182
7.6.1 把DStream输出到文本文件中 182
7.6.2 把DStream写入关系数据库中 183
7.7 本章小结 184
7.8 习题 185
实验5 Spark Streaming编程初级实践 185
第8章 Structured Streaming 187
8.1 概述 187
8.1.1 基本概念 188
8.1.2 两种处理模型 189
8.1.3 Structured Streaming和Spark SQL、Spark Streaming的关系 190
8.2 编写Structured Streaming程序的基本步骤 190
8.2.1 实现步骤 190
8.2.2 测试运行 192
8.3 输入源 194
8.3.1 File源 194
8.3.2 Kafka源 198
8.3.3 Socket源 200
8.3.4 Rate源 201
8.4 输出操作 202
8.4.1 启动流计算 203
8.4.2 输出模式 203
8.4.3 输出接收器 204
8.5 容错处理 205
8.5.1 从检查点恢复故障 206
8.5.2 故障恢复中的限制 206
8.6 迟到数据处理 206
8.6.1 事件时间 207
8.6.2 迟到数据 207
8.6.3 水印 208
8.6.4 多水印规则 209
8.6.5 处理迟到数据的实例 210
8.7 查询的管理和监控 213
8.7.1 管理和监控的方法 213
8.7.2 一个监控的实例 213
8.8 本章小结 215
8.9 习题 216
实验6 Structured Streaming编程实践 216
第9章 Spark MLlib 218
9.1 基于大数据的机器学习 218
9.2 机器学习库MLlib概述 219
9.3 基本的数据类型 220
9.3.1 本地向量 220
9.3.2 标注点 221
9.3.3 本地矩阵 222
9.3.4 数据源 223
9.4 基本的统计分析工具 224
9.4.1 相关性 224
9.4.2 假设检验 226
9.4.3 汇总统计 227
9.5 机器学习流水线 228
9.5.1 流水线的概念 228
9.5.2 流水线的工作过程 229
9.6 特征提取、特征转换、特征选择及局部敏感散列 230
9.6.1 特征提取 231
9.6.2 特征转换 234
9.6.3 特征选择 239
9.6.4 局部敏感散列 241
9.7 分类算法 241
9.7.1 逻辑斯谛回归分类算法 242
9.7.2 决策树分类算法 246
9.8 聚类算法 250
9.8.1 K-Means聚类算法 250
9.8.2 GMM聚类算法 253
9.9 频繁模式挖掘算法 256
9.9.1 FP-Growth算法 256
9.9.2 PrefixSpan算法 259
9.10 协同过滤算法 261
9.10.1 协同过滤算法的原理 262
9.10.2 ALS算法 262
9.11 模型选择 266
9.11.1 模型选择工具 266
9.11.2 用交叉验证选择模型 267
9.12 本章小结 269
9.13 习题 270
实验7 Spark MLlib编程初级实践 270
参考文献 272
|
|