本书以大数据分析应用岗位职业能力递进为主线,较为全面地介绍了Spark大数据技术的相关知识。全书共7章,内容包括Spark生态圈中的Spark Core、Spark SQL、Spark Streaming、GraphX、MLlib等组件,以及海量离线数据的处理、基于历史数据的交互式查询、基于实时数据流的大数据处理、图计算、机器学习等知识点循序渐进地展开介绍。本书以Spark Core、Spark SQL、Spark Streaming相关知识为重点,GraphX、MLlib等组件作为扩展性知识来介绍,书结合岗位胜任能力配套多个企业级实战案例与课后习题,帮助学习者更好地理解和巩固所学知识,熟练应用相关技术,提升专业能力和综合能力,为学习者技术提升和职业发展打下良好基础。本书可以作为高等职业院校大数据技术、人工智能技术应用、软件技术等相关专业教材,也可以作为从事大数据处理与分析相关技术人员的参考用书。
王小洁,女,副教授,山西职业技术学院,山西职业技术学院大数据技术专业是国家"双高”建设专业群的龙头专业,与华为、新华三、中软国际等知名企业开展校企合作,在人才培养模式创新、课程教学资源建设、教材与教法改革、教师教学创新团队等方面均进行改革创新。大数据技术专业每年招生200余人,具有一定 的专业规模。
第1章 专业认知能力培养:走进Spark 1
新手上路1.1:认知Spark 2
1.1.1 Spark的发展历程 2
1.1.2 Spark的特点 3
1.1.3 Spark技术栈 4
1.1.4 Spark术语 5
1.1.5 Spark的应用场景 6
循序渐进1.2:了解Spark的运行架构与运行模式 7
1.2.1 Spark的运行架构 7
1.2.2 Spark的运行模式及运行流程 8
1.2.3 Spark核心概念RDD 12
渐入佳境1.3:掌握Spark在不同模式下的环境搭建 13
1.3.1 Spark本地单机模式环境搭建 13
1.3.2 Spark单机伪分布模式环境搭建 14
实战演练1.4 企业级项目环境搭建 18
Spark完全分布模式环境搭建 18
归纳总结 20
勤学苦练 20
第2章 专业规范能力培养:立足Scala 23
新手上路2.1:认知Scala 24
2.1.1 Scala简介 24
2.1.2 Scala特性 24
2.1.3 Scala环境配置及安装 24
2.1.4 Scala环境的运行 26
新手上路2.2:变量和数据类型 26
2.2.1 注释 26
2.2.2 常量和变量 27
2.2.3 标识符和关键字 27
2.2.4 数据类型 29
2.2.5 数据类型转换 32
2.2.6 Scala输出 34
新手上路2.3:运算符和流程控制 35
2.3.1 算术运算符 35
2.3.2 关系运算符 36
2.3.3 逻辑运算符 37
2.3.4 赋值运算符 37
2.3.5 位运算符 38
2.3.6 运算符优先级 38
2.3.7 流程控制 38
循序渐进2.4:函数式编程 43
2.4.1 函数的定义 43
2.4.2 函数基本语法 43
2.4.3 函数和方法的区别 45
2.4.4 函数至简原则 46
2.4.5 匿名函数 47
2.4.6 高阶函数 47
2.4.7 函数柯里化 48
循序渐进2.5:面向对象编程 49
2.5.1 包 49
2.5.2 类和对象 50
2.5.3 封装 51
2.5.4 继承 52
2.5.5 抽象类 53
2.5.6 伴生对象 53
2.5.7 特质 54
循序渐进2.6:数据集合与文件操作 55
2.6.1 集合简介 55
2.6.2 数组 56
2.6.3 列表 57
2.6.4 Set集合 58
2.6.5 Map集合 59
2.6.6 元组 60
2.6.7 文件操作 61
实战演练2.7:智慧交通车牌分类识别 62
2.7.1 函数识别车牌所在地 62
2.7.2 统计太原市车牌数量 63
2.7.3 根据车牌所在地对车牌数据分组 63
2.7.4 车牌所在地信息查询程序 63
归纳总结 64
勤学苦练 65
第3章 岗位核心能力培养:聚焦Spark Core 68
新手上路3.1:认知Spark核心数据集RDD 69
3.1.1 RDD简介 70
3.1.2 RDD的特点 70
新手上路3.2:掌握RDD的创建 71
3.2.1 借助内存中的集合数据创建RDD 72
3.2.2 从外部存储创建RDD 73
循序渐进3.3:掌握RDD的算子操作 74
3.3.1 算子的概念与作用 74
3.3.2 转换算子的操作与使用 75
3.3.3 键-值对类型RDD算子的操作与使用 78
3.3.4 行动算子的操作与使用 80
循序渐进3.4:掌握RDD的文件操作 83
3.4.1 JSON格式文件的读取与存储 83
3.4.2 SequenceFile格式文件的存储与读取 85
渐入佳境3.5:了解IntelliJ IDEA如何开发Spark程序 86
3.5.1 下载与安装IntelliJ IDEA 86
3.5.2 Scala插件的安装与使用 88
3.5.3 IntelliJ IDEA运行Spark程序 93
实战演练3.6:智慧交通道路卡口车流量分析 100
3.6.1 数据获取与数据解释 100
3.6.2 项目编程环境搭建 101
3.6.3 交通道路卡口车流量排名分析 107
3.6.4 交通道路卡口车辆超速违章分析 110
归纳总结 114
勤学苦练 115
第4章 岗位拓展能力培养:夯实Spark SQL 117
新手上路4.1:初识Spark SQL 118
4.1.1 Spark SQL简介 118
4.1.2 Spark SQL特点 119
4.1.3 Spark SQL的Spark Shell交互 120
循序渐进4.2:掌握Spark SQL核心编程模型DataFrame 121
4.2.1 DataFrame简介 121
4.2.2 DataFrame的创建 122
4.2.3 DataFrame的相关操作 127
渐入佳境4.3:熟悉Spark SQL扩展编程模型Dataset 141
4.3.1 Dataset简介 141
4.3.2 Dataset的创建 142
实战演练4.4:在线教育数据分析 143
4.4.1 数据获取与数据解释 143
4.4.2 用户学习行为习惯分析 145
4.4.3 视频课程点击量排行分析 146
4.4.4 视频课程分类排行推荐 146
归纳总结 147
勤学苦练 148
第5章 岗位综合能力培养:锤炼Spark Streaming 150
新手上路5.1:初识Spark Streaming 151
5.1.1 Spark Streaming概述 151
5.1.2 Spark Streaming特点 152
5.1.3 Spark Streaming工作原理 152
循序渐进5.2:掌握DStream编程模型 153
5.2.1 DStream简介 153
5.2.2 DStream创建 154
渐入佳境5.3:熟悉DStream的相关操作 157
5.3.1 DStream的转换操作 157
5.3.2 DStream的窗口操作 158
5.3.3 DStream的输出函数 161
实战演练5.4:电商网站广告点击分析 162
5.4.1 项目环境搭建 162
5.4.2 项目数据解释 167
5.4.3 电商网站广告点击黑名单 168
5.4.4 电商网站热门广告排行 170
归纳总结 172
勤学苦练 173
第6章 职业发展能力培养:进阶Spark GraphX图计算 175
新手上路6.1:初识Spark GraphX 176
6.1.1 图计算的概念与应用 176
6.1.2 Spark GraphX的概念 178
6.1.3 Spark GraphX的特性 178
循序渐进6.2:掌握GraphX编程模型 178
6.2.1 属性图的构建 179
6.2.2 图的查询操作 182
6.2.3 图的数据与结构转换操作 183
6.2.4 图的关联与聚合操作 187
实战演练6.3:构建用户购物行为网络并分析用户行为 189
6.3.1 用户购物行为网络的构建 190
6.3.2 商品的用户购物行为次数排名 191
6.3.3 用户不同购物行为次数统计 191
归纳总结 192
勤学苦练 192
第7章 职业发展能力培养:进阶Spark MLlib算法库 195
新手上路7.1:初识Spark MLlib 196
7.1.1 什么是机器学习 196
7.1.2 机器学习算法 197
7.1.3 Spark机器学习库MLlib 197
7.1.4 MLlib数据类型 198
循序渐进7.2:MLlib算法介绍 203
7.2.1 协同过滤算法简介 203
7.2.2 协同过滤算法分类 203
7.2.3 MLlib中的协同过滤 205
实战演练7.3:商品智能推荐 205
7.3.1 数据准备 206
7.3.2 模型构建 206
7.3.3 实战实现 208
归纳总结 208
勤学苦练 209
参考文献 212