《Spark编程基础:Scala版》是由人民邮电出版社出版的一本关于Spark编程方面的书籍,作者是林子雨、赖永炫、陶继平,主要介绍了关于Spark、编程基础、Scala方面的知识内容,目前在Spark编程类书籍综合评分为:8.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.1Hadoop4
- 1.2.2Spark8
- 1.2.3Flink10
- 1.2.4Beam11
- 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.3Scala简介20
- 2.1.4Scala的安装21
- 2.1.5HelloWorld21
- 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.3Spark运行基本流程81
- 3.3.4RDD的设计与运行原理82
- 3.4 Spark的部署方式91
- 3.5 本章小结92
- 3.6 习题93
- 第4章Spark环境搭建和使用方法94
- 4.1 安装Spark95
- 4.1.1基础环境95
- 4.1.2下载安装文件95
- 4.1.3配置相关文件96
- 4.1.4Spark和Hadoop的交互97
- 4.2 在spark-shell中运行代码97
- 4.2.1spark-shell命令98
- 4.2.2启动spark-shell99
- 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在集群中安装Spark106
- 4.4.4配置环境变量106
- 4.4.5Spark的配置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.1RDD创建114
- 5.1.2RDD操作115
- 5.1.3持久化121
- 5.1.4分区122
- 5.1.5一个综合实例126
- 5.2 键值对RDD128
- 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 SQL149
- 6.1 Spark SQL简介150
- 6.1.1从Shark说起150
- 6.1.2Spark SQL架构151
- 6.1.3为什么推出Spark SQL152
- 6.2 DataFrame概述152
- 6.3 DataFrame的创建153
- 6.4 DataFrame的保存154
- 6.5 DataFrame的常用操作155
- 6.6 从RDD转换得到DataFrame156
- 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 Streaming169
- 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 Streaming174
- 7.2.1Spark Streaming设计174
- 7.2.2Spark Streaming与Storm的对比175
- 7.2.3从“Hadoop+Storm”架构转向Spark架构176
- 7.3 DStream操作概述177
- 7.3.1Spark 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.3RDD队列流186
- 7.5 高级数据源187
- 7.5.1Kafka简介188
- 7.5.2Kafka准备工作188
- 7.5.3Spark准备工作189
- 7.5.4编写Spark Streaming程序使用Kafka数据源190
- 7.6 转换操作194
- 7.6.1DStream无状态转换操作194
- 7.6.2DStream有状态转换操作195
- 7.7 输出操作199
- 7.7.1把DStream输出到文本文件中199
- 7.7.2把DStream写入到关系数据库中200
- 7.8 本章小结202
- 7.9 习题202
- 实验6Spark Streaming编程初级实践203
- 一、实验目的203
- 二、实验平台203
- 三、实验内容和要求203
- 四、实验报告204
- 第8章Spark MLlib205
- 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.1K-Means聚类算法230
- 8.7.2GMM聚类算法232
- 8.8 协同过滤算法234
- 8.8.1推荐算法的原理235
- 8.8.2ALS算法235
- 8.9 模型选择和超参数调整239
- 8.9.1模型选择工具239
- 8.9.2用交叉验证选择模型240
- 8.10 本章小结242
- 8.11 习题242
- 实验7Spark机器学习库MLlib编程实践243
- 一、实验目的243
- 二、实验平台243
- 三、实验内容和要求243
- 四、实验报告244
- 参考文献245