(1)解读Spark SQL背景图专业知识、代码
(2)根据1个工程项目案例让用户领略到Spark SQL强劲简单的逻辑思维能力
(3)学习培训搭建1个互联网大数据具体运用的方式,提升工程项目逻辑思维
(4)洞察Spark的调优方法以及观念,让Spark SQL程序流程高效率运作
Spark SQL是 Spark互联网大数据架构的部分,适用应用规范SQL查寻和HiveQL来读写能力统计数据,可用以结构化数据解决,并能够实行相近SQL的Spark数据统计,有利于开发者迅速地建立和运作Spark程序流程。本书分成4篇,共9章,*篇解读了Spark SQL 发展趋势历史时间和开发工具构建。第二篇解读了Spark SQL 案例,促使用户把握Spark SQL的新手入门实际操作,掌握Spark RDD、DataFrame和DataSet,并了解 DataFrame 各种各样实际操作。第三篇解读了根据WiFi电极的商业服务数据分析新项目,案例中包括数据收集、预备处理、储存、运用Spark SQL 发掘统计数据,一步步领着用户学习培训Spark SQL强劲的大数据挖掘作用。第四篇解读了Spark SQL 提升的专业知识。这书合适Spark新手、Spark数据统计分析工作人员及其Spark软件开发工作人员,也合适高等院校和培训机构有关技术专业的老师学生课堂教学参照。
目录
- 第一部分 入门篇
- 第1章 初识Spark SQL 3
- 1.1 Spark SQL的前世今生 3
- 1.2 Spark SQL能做什么 4
- 第2章 Spark安装、编程环境搭建以及打包提交 6
- 2.1 Spark的简易安装 6
- 2.2 准备编写Spark应用程序的IDEA环境 10
- 2.3 将编写好的Spark应用程序打包成jar提交到Spark上 18
- 第二部分 基础篇
- 第3章 Spark上的RDD编程 23
- 3.1 RDD基础 24
- 3.1.1 创建RDD 24
- 3.1.2 RDD转化操作、行动操作 24
- 3.1.3 惰性求值 25
- 3.1.4 RDD缓存概述 26
- 3.1.5 RDD基本编程步骤 26
- 3.2 RDD简单实例—wordcount 27
- 3.3 创建RDD 28
- 3.3.1 程序内部数据作为数据源 28
- 3.3.2 外部数据源 29
- 3.4 RDD操作 33
- 3.4.1 转化操作 34
- 3.4.2 行动操作 37
- 3.4.3 惰性求值 38
- 3.5 向Spark传递函数 39
- 3.5.1 传入匿名函数 39
- 3.5.2 传入静态方法和传入方法的引用 40
- 3.5.3 闭包的理解 41
- 3.5.4 关于向Spark传递函数与闭包的总结 42
- 3.6 常见的转化操作和行动操作42
- 3.6.1 基本RDD转化操作 43
- 3.6.2 基本RDD行动操作 48
- 3.6.3 键值对RDD 52
- 3.6.4 不同类型RDD之间的转换 56
- 3.7 深入理解RDD 57
- 3.8 RDD 缓存、持久化 59
- 3.8.1 RDD缓存 59
- 3.8.2 RDD持久化 61
- 3.8.3 持久化存储等级选取策略 63
- 3.9 RDD checkpoint容错机制 64
- 第4章 Spark SQL编程入门 66
- 4.1 Spark SQL概述 66
- 4.1.1 Spark SQL是什么 66
- 4.1.2 Spark SQL通过什么来实现 66
- 4.1.3 Spark SQL 处理数据的优势 67
- 4.1.4 Spark SQL数据核心抽象——DataFrame 67
- 4.2 SparkSQL编程入门示例 69
- 4.2.1 程序主入口:SparkSession 69
- 4.2.2 创建 DataFrame 70
- 4.2.3 DataFrame基本操作 70
- 4.2.4 执行SQL查询 72
- 4.2.5 全局临时表 73
- 4.2.6 Dataset 73
- 4.2.7 将RDDs转化为DataFrame 75
- 4.2.8 用户自定义函数 78
- 第5章 Spark SQL的DataFrame操作大全 82
- 5.1 由JSON文件生成所需的DataFrame对象 82
- 5.2 DataFrame上的行动操作 84
- 5.3 DataFrame上的转化操作 91
- 5.3.1 where条件相关 92
- 5.3.2 查询指定列 94
- 5.3.3 思维开拓:Column的巧妙应用 99
- 5.3.4 limit操作 102
- 5.3.5 排序操作:order by和sort 103
- 5.3.6 group by操作 106
- 5.3.7 distinct、dropDuplicates去重操作 107
- 5.3.8 聚合操作 109
- 5.3.9 union合并操作 110
- 5.3.10 join操作 111
- 5.3.11 获取指定字段统计信息 114
- 5.3.12 获取两个DataFrame中共有的记录 116
- 5.3.13 获取一个DataFrame中有另一个DataFrame中没有的记录 116
- 5.3.14 操作字段名 117
- 5.3.15 处理空值列 118
- 第6章 Spark SQL支持的多种数据源 121
- 6.1 概述 121
- 6.1.1 通用load/save 函数 121
- 6.1.2 手动指定选项 123
- 6.1.3 在文件上直接进行SQL查询 123
- 6.1.4 存储模式 123
- 6.1.5 持久化到表 124
- 6.1.6 bucket、排序、分区操作 124
- 6.2 典型结构化数据源 125
- 6.2.1 Parquet 文件 125
- 6.2.2 JSON 数据集 129
- 6.2.3 Hive表 130
- 6.2.4 其他数据库中的数据表 133
- 第三部分 实践篇
- 第7章 Spark SQL 工程实战之基于WiFi探针的商业大数据分析技术139
- 7.1 功能需求 139
- 7.1.1 数据收集 139
- 7.1.2 数据清洗 140
- 7.1.3 客流数据分析 141
- 7.1.4 数据导出 142
- 7.2 系统架构 142
- 7.3 功能设计 143
- 7.4 数据库结构 144
- 7.5 本章小结 144
- 第8章 第一个Spark SQL应用程序 145
- 8.1 完全分布式环境搭建 145
- 8.1.1 Java 环境配置 145
- 8.1.2 Hadoop 安装配置 146
- 8.1.3 Spark安装配置 149
- 8.2 数据清洗 150
- 8.3 数据处理流程 153
- 8.4 Spark程序远程调试 164
- 8.4.1 导出jar包 164
- 8.4.2 IDEA配置 168
- 8.4.3 服务端配置 170
- 8.5 Spark的Web界面 171
- 8.6 本章小结 172
- 第四部分 优化篇
- 第9章 让Spark程序再快一点 175
- 9.1 Spark执行流程 175
- 9.2 Spark内存简介 176
- 9.3 Spark的一些概念 177
- 9.4 Spark编程四大守则 178
- 9.5 Spark调优七式 183
- 9.6 解决数据倾斜问题 192
- 9.7 Spark 执行引擎 Tungsten 简介 195
- 9.8 Spark SQL解析引擎Catalyst 简介 197
- 9.9 本章小结 200