Spark编程基础(Scala版)

厦门大学大数据实验室长期经验总结的结晶,名师名校打造大数据领域精品力作。深入浅出,有效降低spark技术学习门槛;资源全面,构建全方位一站式在线服务体系。
分享 推荐 4 收藏 40 阅读 6.6K
林子雨 (作者) 978-7-115-48816-9

关于本书的内容有任何问题,请联系 孙澍

本书是厦门大学作者团队长期经验总结的结晶,是在厦门大学《大数据技术原理与应用》入门级大数据教材的基础之上编写的。为了确保教程质量,在编著出版纸质教材之前,实验室已经于2016年10月通过实验室官网免费发布共享了简化版的Spark在线教程和相关教学资源,同时,该在线教程也已经用于厦门大学计算机科学系研究生的大数据课程教学,并成为全国高校大数据课程教师培训交流班的授课内容。实验室根据读者对在线Spark教程的大量反馈意见以及教学实践中发现的问题,对Spark在线教程进行了多次修正和完善,所有这些前期准备工作,都为纸质教材的编著出版打下了坚实的基础。

披荆斩棘,在大数据丛林中开辟学习捷径
填沟削坎,为快速学习Spark 技术铺平道路
深入浅出,有效降低Spark 技术学习门槛
资源全面,构建全方位一站式在线服务体系

内容摘要

本书以Scala作为开发Spark应用程序的编程语言,系统介绍了Spark编程的基础知识。全书共8章,内容包括大数据技术概述、Scala语言基础、Spark的设计与运行原理、Spark环境搭建和使用方法、RDD编程、Spark SQL、Spark 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
一、实验目的 15
二、实验平台 15
三、实验内容和要求 15
四、实验报告 16
第2章 Scala语言基础 17
 2.1 Scala语言概述 18
2.1.1 计算机的缘起 18
2.1.2 编程范式 19
2.1.3 Scala简介 20
2.1.4 Scala的安装 21
2.1.5 HelloWorld 21
 2.2 Scala基础知识 23
2.2.1 基本数据类型和变量 23
2.2.2 输入/输出 26
2.2.3 控制结构 28
2.2.4 数据结构 31
 2.3 面向对象编程基础 37
2.3.1 类 37
2.3.2 对象 42
2.3.3 继承 47
2.3.4 参数化类型 50
2.3.5 特质 52
2.3.6 模式匹配 55
2.3.7 包 58
 2.4 函数式编程基础 59
2.4.1 函数的定义与使用 60
2.4.2 高阶函数 61
2.4.3 闭包 62
2.4.4 偏应用函数和Curry化 62
2.4.5 针对容器的操作 64
2.4.6 函数式编程实例 69
 2.5 本章小结 70
 2.6 习题 70
 实验2 Scala编程初级实践 71
一、实验目的 71
二、实验平台 71
三、实验内容和要求 72
四、实验报告 75
第3章 Spark的设计与运行原理 76
 3.1 概述 77
 3.2 Spark生态系统 78
 3.3 Spark运行架构 79
3.3.1 基本概念 79
3.3.2 架构设计 80
3.3.3 Spark运行基本流程 81
3.3.4 RDD的设计与运行原理 82
 3.4 Spark的部署方式 91
 3.5 本章小结 92
 3.6 习题 93
第4章 Spark环境搭建和使用方法 94
 4.1 安装Spark 95
4.1.1 基础环境 95
4.1.2 下载安装文件 95
4.1.3 配置相关文件 96
4.1.4 Spark和Hadoop的交互 97
 4.2 在spark-shell中运行代码 97
4.2.1 spark-shell命令 98
4.2.2 启动spark-shell 99
 4.3 开发Spark独立应用程序 99
4.3.1 安装编译打包工具 100
4.3.2 编写Spark应用程序代码 101
4.3.3 编译打包 101
4.3.4 通过spark-submit运行程序 104
 4.4 Spark集群环境搭建 104
4.4.1 集群概况 105
4.4.2 搭建Hadoop集群 105
4.4.3 在集群中安装Spark 106
4.4.4 配置环境变量 106
4.4.5 Spark的配置 106
4.4.6 启动Spark集群 107
4.4.7 关闭Spark集群 107
 4.5 在集群上运行Spark应用程序 108
4.5.1 启动Spark集群 108
4.5.2 采用独立集群管理器 108
4.5.3 采用Hadoop YARN管理器 109
 4.6 本章小结 110
 4.7 习题 111
 实验3 Spark和Hadoop的安装 111
一、实验目的 111
二、实验平台 111
三、实验内容和要求 111
四、实验报告 112
第5章 RDD编程 113
 5.1 RDD编程基础 114
5.1.1 RDD创建 114
5.1.2 RDD操作 115
5.1.3 持久化 121
5.1.4 分区 122
5.1.5 一个综合实例 126
 5.2 键值对RDD 128
5.2.1 键值对RDD的创建 128
5.2.2 常用的键值对转换操作 129
5.2.3 一个综合实例 133
 5.3 数据读写 134
5.3.1 文件数据读写 135
5.3.2 读写HBase数据 137
 5.4 综合实例 141
5.4.1 求TOP值 141
5.4.2 文件排序 143
5.4.3 二次排序 144
 5.5 本章小结 146
 实验4 RDD编程初级实践 146
一、实验目的 146
二、实验平台 146
三、实验内容和要求 146
四、实验报告 148
第6章 Spark SQL 149
 6.1 Spark SQL简介 150
6.1.1 从Shark说起 150
6.1.2 Spark SQL架构 151
6.1.3 为什么推出Spark SQL 152
 6.2 DataFrame概述 152
 6.3 DataFrame的创建 153
 6.4 DataFrame的保存 154
 6.5 DataFrame的常用操作 155
 6.6 从RDD转换得到DataFrame 156
6.6.1 利用反射机制推断RDD模式 157
6.6.2 使用编程方式定义RDD模式 158
 6.7 使用Spark SQL读写数据库 160
6.7.1 通过JDBC连接数据库 160
6.7.2 连接Hive读写数据 162
 6.8 本章小结 166
 6.9 习题 166
 实验5 Spark SQL编程初级实践 167
一、实验目的 167
二、实验平台 167
三、实验内容和要求 167
四、实验报告 168
第7章 Spark Streaming 169
 7.1 流计算概述 170
7.1.1 静态数据和流数据 170
7.1.2 批量计算和实时计算 171
7.1.3 流计算概念 171
7.1.4 流计算框架 172
7.1.5 流计算处理流程 173
 7.2 Spark Streaming 174
7.2.1 Spark Streaming设计 174
7.2.2 Spark Streaming与Storm的对比 175
7.2.3 从“Hadoop+Storm”架构转向Spark架构 176
 7.3 DStream操作概述 177
7.3.1 Spark Streaming工作机制 177
7.3.2 编写Spark Streaming程序的基本步骤 178
7.3.3 创建StreamingContext对象 178
 7.4 基本输入源 179
7.4.1 文件流 179
7.4.2 套接字流 181
7.4.3 RDD队列流 186
 7.5 高级数据源 187
7.5.1 Kafka简介 188
7.5.2 Kafka准备工作 188
7.5.3 Spark准备工作 189
7.5.4 编写Spark Streaming程序使用Kafka数据源 190
 7.6 转换操作 194
7.6.1 DStream无状态转换操作 194
7.6.2 DStream有状态转换操作 195
 7.7 输出操作 199
7.7.1 把DStream输出到文本文件中 199
7.7.2 把DStream写入到关系数据库中 200
 7.8 本章小结 202
 7.9 习题 202
实验6 Spark Streaming编程初级实践 203
一、实验目的 203
二、实验平台 203
三、实验内容和要求 203
四、实验报告 204
第8章 Spark MLlib 205
 8.1 基于大数据的机器学习 206
 8.2 机器学习库MLlib概述 207
 8.3 基本数据类型 208
8.3.1 本地向量 208
8.3.2 标注点 208
8.3.3 本地矩阵 209
 8.4 机器学习流水线 210
8.4.1 流水线的概念 210
8.4.2 流水线工作过程 211
 8.5 特征提取、转换和选择 212
8.5.1 特征提取 213
8.5.2 特征转换 215
8.5.3 特征选择 220
8.5.4 局部敏感哈希 221
 8.6 分类算法 222
8.6.1 逻辑斯蒂回归分类器 222
8.6.2 决策树分类器 226
 8.7 聚类算法 229
8.7.1 K-Means聚类算法 230
8.7.2 GMM聚类算法 232
 8.8 协同过滤算法 234
8.8.1 推荐算法的原理 235
8.8.2 ALS算法 235
 8.9 模型选择和超参数调整 239
8.9.1 模型选择工具 239
8.9.2 用交叉验证选择模型 240
 8.10 本章小结 242
 8.11 习题 242
实验7 Spark机器学习库MLlib编程实践 243
一、实验目的 243
二、实验平台 243
三、实验内容和要求 243
四、实验报告 244
参考文献 245

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

林子雨(1978-),男,博士,国内高校知名大数据教师,厦门大学计算机科学系副教授,厦门大学云计算与大数据研究中心创始成员,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员,中国高校首个“数字教师”提出者和建设者。2013年开始在厦门大学开设大数据课程,建设了国内高校首个大数据课程公共服务平台,平台累计网络访问量超过1000万次,成为全国高校大数据教学知名品牌,并荣获“2018年福建省教学成果二等奖”,主持的课程《大数据技术原理与应用》获评“2018年国家精品在线开放课程”。
主讲课程:《大数据技术原理与应用》《大数据处理技术》《大数据导论》。
个人主页:http://dblab.xmu.edu.cn/post/linziyu。
E-mail: ziyulin@xmu.edu.cn。
数据库实验室网站:http://dblab.xmu.edu.cn。
建设了高校大数据课程公共服务平台(http://dblab.xmu.edu.cn/post/bigdata-teaching- platform/),为教师教学和学生学习大数据课程提供包括教学大纲、讲义PPT、学习指南、备课指南、实验指南、上机习题、授课视频、技术资料等全方位、一站式免费服务,平台每年访问量超过200万次,累计访问量超过750万次,同时提供面向高校的大数据实验平台建设方案和大数据课程师资培训服务。

推荐用户

购买本书用户

相关图书

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