Spark编程基础

本书是厦门大学作者团队长期经验总结的结晶,是在厦门大学《大数据技术原理与应用》入门级大数据教材的基础之上编写的
分享 推荐 4 收藏 54 阅读 5.7K
林子雨 (作者) 978-7-115-47598-5

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

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

披荆斩棘,在大数据丛林中开辟学习捷径
填沟削坎,为快速学习Spark 技术铺平道路
深入浅出,有效降低Spark 技术学习门槛
资源全面,构建全方位一站式在线服务体系
¥49.80 ¥42.33 (8.5 折)
教学资源仅供教师教学使用,转载或另作他用版权方有权追究法律责任。

内容摘要

本书以Scala作为开发Spark应用程序的编程语言,系统介绍了Spark编程的基础知识。全书共7章,内容包括大数据技术概述、Spark的设计与运行原理、Spark环境搭建和使用方法、RDD编程、Spark SQL、Spark Streaming和Spark MLlib。
本书每章都安排了入门级的编程实践操作,以便使读者能更好地学习和更牢固地掌握Spark编程方法。本书配套官网免费提供了全套的在线教学资源,包括讲义PPT、习题、源代码、软件、数据集、授课视频、上机实验指南等。
本书可以作为高等院校计算机、软件工程、数据科学与大数据技术等专业的进阶级大数据课程教材,用于指导Spark编程实践,也可供相关技术人员参考。

目录

第 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章 Spark的设计与运行原理 17
2.1 概述 18
2.2 Spark生态系统 19
2.3 Spark运行架构 20
2.3.1 基本概念 20
2.3.2 架构设计 21
2.3.3 Spark运行基本流程 22
2.3.4 RDD的设计与运行原理 23
2.4 Spark的部署方式 32
2.5 本章小结 33
2.6 习题 34
第3章 Spark环境搭建和使用方法 35
3.1 安装Spark 36
3.1.1 基础环境 36
3.1.2 下载安装文件 36
3.1.3 配置相关文件 37
3.1.4 Spark和Hadoop的交互 38
3.2 在spark-shell中运行代码 38
3.2.1 spark-shell命令 39
3.2.2 启动spark-shell 40
3.3 开发Spark独立应用程序 40
3.3.1 安装编译打包工具 41
3.3.2 编写Spark应用程序代码 42
3.3.3 编译打包 42
3.3.4 通过spark-submit运行程序 45
3.4 Spark集群环境搭建 45
3.4.1 集群概况 46
3.4.2 搭建Hadoop集群 46
3.4.3 在集群中安装Spark 47
3.4.4 配置环境变量 47
3.4.5 Spark的配置 47
3.4.6 启动Spark集群 48
3.4.7 关闭Spark集群 48
3.5 在集群上运行Spark应用程序 49
3.5.1 启动Spark集群 49
3.5.2 采用独立集群管理器 49
3.5.3 采用Hadoop YARN管理器 50
3.6 本章小结 51
3.7 习题 52
实验2 Spark和Hadoop的安装 52
一、实验目的 52
二、实验平台 52
三、实验内容和要求 52
四、实验报告 53
第4章 RDD编程 54
4.1 RDD编程基础 55
4.1.1 RDD创建 55
4.1.2 RDD操作 56
4.1.3 持久化 62
4.1.4 分区 63
4.1.5 一个综合实例 67
4.2 键值对RDD 69
4.2.1 键值对RDD的创建 69
4.2.2 常用的键值对转换操作 70
4.2.3 一个综合实例 74
4.3 数据读写 75
4.3.1 文件数据读写 76
4.3.2 读写HBase数据 78
4.4 综合实例 82
4.4.1 求TOP值 82
4.4.2 文件排序 84
4.4.3 二次排序 85
4.5 本章小结 87
实验3 RDD编程初级实践 87
一、实验目的 87
二、实验平台 87
三、实验内容和要求 87
四、实验报告 89
第5章 Spark SQL 90
5.1 Spark SQL简介 91
5.1.1 从Shark说起 91
5.1.2 Spark SQL架构 92
5.1.3 为什么推出Spark SQL 93
5.2 DataFrame概述 93
5.3 DataFrame的创建 94
5.4 DataFrame的保存 95
5.5 DataFrame的常用操作 96
5.6 从RDD转换得到DataFrame 97
5.6.1 利用反射机制推断RDD模式 98
5.6.2 使用编程方式定义RDD模式 99
5.7 使用Spark SQL读写数据库 101
5.7.1 通过JDBC连接数据库 101
5.7.2 连接Hive读写数据 103
5.8 本章小结 107
5.9 习题 107
实验4 Spark SQL编程初级实践 108
一、实验目的 108
二、实验平台 108
三、实验内容和要求 108
四、实验报告 109
第6章 Spark Streaming 110
6.1 流计算概述 111
6.1.1 静态数据和流数据 111
6.1.2 批量计算和实时计算 112
6.1.3 流计算概念 112
6.1.4 流计算框架 113
6.1.5 流计算处理流程 114
6.2 Spark Streaming 115
6.2.1 Spark Streaming设计 115
6.2.2 Spark Streaming与Storm的对比 116
6.2.3 从“Hadoop+Storm”架构转向Spark架构 117
6.3 DStream操作概述 118
6.3.1 Spark Streaming工作机制 118
6.3.2 编写Spark Streaming程序的基本步骤 119
6.3.3 创建StreamingContext对象 119
6.4 基本输入源 120
6.4.1 文件流 120
6.4.2 套接字流 122
6.4.3 RDD队列流 127
6.5 高级数据源 128
6.5.1 Kafka简介 129
6.5.2 Kafka准备工作 129
6.5.3 Spark准备工作 130
6.5.4 编写Spark Streaming程序使用Kafka数据源 131
6.6 转换操作 135
6.6.1 DStream无状态转换操作 135
6.6.2 DStream有状态转换操作 136
6.7 输出操作 140
6.7.1 把DStream输出到文本文件中 140
6.7.2 把DStream写入到关系数据库中 141
6.8 本章小结 143
6.9 习题 143
实验5 Spark Streaming编程初级实践 144
一、实验目的 144
二、实验平台 144
三、实验内容和要求 144
四、实验报告 145
第7章 Spark Mllib 146
7.1 基于大数据的机器学习 147
7.2 机器学习库MLlib概述 148
7.3 基本数据类型 149
7.3.1 本地向量 149
7.3.2 标注点 149
7.3.3 本地矩阵 150
7.4 机器学习流水线 151
7.4.1 流水线的概念 151
7.4.2 流水线工作过程 152
7.5 特征提取、转换和选择 153
7.5.1 特征提取 154
7.5.2 特征转换 156
7.5.3 特征选择 161
7.5.4 局部敏感哈希 162
7.6 分类算法 163
7.6.1 逻辑斯蒂回归分类器 163
7.6.2 决策树分类器 167
7.7 聚类算法 170
7.7.1 K-Means聚类算法 171
7.7.2 GMM聚类算法 173
7.8 协同过滤算法 175
7.8.1 推荐算法的原理 176
7.8.2 ALS算法 176
7.9 模型选择和超参数调整 180
7.9.1 模型选择工具 180
7.9.2 用交叉验证选择模型 181
7.10 本章小结 183
7.11 习题 183
实验6 Spark机器学习库MLlib编程实践 184
一、实验目的 184
二、实验平台 184
三、实验内容和要求 184
四、实验报告 185
参考文献 186

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

林子雨(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万次,同时提供面向高校的大数据实验平台建设方案和大数据课程师资培训服务。

推荐用户

购买本书用户

相关图书

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