第1章 认识Spark SQL 1
1.1 Spark SQL概述 1
1.1.1 Spark SQL与DataFrame 1
1.1.2 DataFrame与RDD的差异 2
1.1.3 Spark SQL的发展历程 3
1.2从零起步掌握Hive 4
1.2.1 Hive的本质是什么 4
1.2.2 Hive安装和配置 5
1.2.3使用Hive分析搜索数据 12
1.3 Spark SQL on Hive安装与配置 15
1.3.1安装Spark SQL 15
1.3.2安装MySQL 18
1.3.3启动Hive Metastore 21
1.4 Spark SQL初试 21
1.4.1通过spark-shell来使用Spark SQL 21
1.4.2 Spark SQL的命令终端 24
1.4.3 Spark的Web UI 25
1.5本章小结 26
第2章 DataFrame原理与常用操作 27
2.1 DataFrame编程模型 27
2.2 DataFrame基本操作实战 28
2.2.1数据准备 28
2.2.2启动交互式界面 30
2.2.3数据处理与分析 31
2.3通过RDD来构建DataFrame 44
2.4缓存表(列式存储) 47
2.5 DataFrame API应用示例 48
2.6本章小结 79
第3章 Spark SQL操作多种数据源 80
3.1通用的加载/保存功能 80
3.1.1 Spark SQL加载数据 80
3.1.2 Spark SQL保存数据 82
3.1.3综合案例——电商热销商品排名 82
3.2 Spark SQL操作Hive示例 87
3.3 Spark SQL操作JSON数据集示例 91
3.4 Spark SQL操作HBase示例 92
3.5 Spark SQL操作MySQL示例 97
3.5.1安装并启动MySQL 97
3.5.2准备数据表 98
3.5.3操作MySQL表 101
3.6 Spark SQL操作MongoDB示例 111
3.6.1安装配置MongoDB 111
3.6.2启动MongoDB 113
3.6.3准备数据 114
3.6.4 Spark SQL操作MongoDB 116
3.7本章小结 122
第4章 Parquet列式存储 123
4.1 Parquet概述 123
4.1.1 Parquet的基本概念 123
4.1.2 Parquet数据列式存储格式应用举例 125
4.2 Parquet的Block配置及数据分片 128
4.2.1 Parquet的Block的配置 129
4.2.2 Parquet内部的数据分片 129
4.3 Parquet序列化 129
4.3.1 Spark实施序列化的目的 130
4.3.2 Parquet两种序列化方式 130
4.4本章小结 131
第5章 Spark SQL内置函数与窗口函数 132
5.1 Spark SQL内置函数 132
5.1.1 Spark SQL内置函数概述 132
5.1.2 Spark SQL内置函数应用实例 133
5.2 Spark SQL窗口函数 143
5.2.1 Spark SQL窗口函数概述 143
5.2.2 Spark SQL窗口函数分数查询统计案例 145
5.2.3 Spark SQL窗口函数NBA常规赛数据统计案例 154
5.3本章小结 161
第6章 Spark SQL UDF与UDAF 162
6.1 UDF概述 162
6.2 UDF示例 162
6.2.1 Hobby count函数 163
6.2.2 Combine函数 164
6.2.3 Str2Int函数 165
6.2.4 Wsternstate函数 167
6.2.5 ManyCustomers函数 168
6.2.6 StateRegion函数 169
6.2.7 DiscountRatio函数 170
6.2.8 MakeStruct函数 171
6.2.9 MyDateFilter函数 172
6.2.10 MakeDT函数 174
6.3 UDAF概述 176
6.4 UDAF示例 176
6.4.1 ScalaAggregateFunction函数 176
6.4.2 GeometricMean函数 180
6.4.3 CustomMean函数 183
6.4.4 BelowThreshold函数 186
6.4.5 YearCompare函数 188
6.4.6 WordCount函数 194
6.5本章小结 198
第7章 Thrift Server 199
7.1 Thrift概述 199
7.1.1 Thrift的基本概念 199
7.1.2 Thrift的工作机制 201
7.1.3 Thrift的运行机制 201
7.1.4一个简单的Thrift实例 203
7.2 Thrift Server的启动过程 206
7.2.1 Thrift Sever启动详解 207
7.2.2 HiveThriftServer2类的解析 212
7.3 Beeline操作 215
7.3.1 Beeline连接方式 215
7.3.2在Beeline中进行SQL查询操作 218
7.3.3通过Web控制台查看用户进行的操作 220
7.4 Thrift Server应用示例 221
7.4.1示例源代码 221
7.4.2关键代码行解析 222
7.4.3测试运行 224
7.4.4运行结果解析 227
7.4.5 Spark Web控制台查看运行日志 227
7.5本章小结 228
第8章 Spark SQL综合应用案例 229
8.1综合案例实战——电商网站日志多维度数据分析 229
8.1.1数据准备 230
8.1.2数据说明 230
8.1.3数据创建 230
8.1.4数据导入 235
8.1.5数据测试和处理 240
8.2综合案例实战——电商网站搜索排名统计 245
8.2.1案例概述 245
8.2.2数据准备 245
8.2.3实现用户每天搜索前3名的商品排名统计 249
8.3本章小结 254