描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111591979
本书可以使读者对Spark SQL有深入彻底的理解,本书适合于Spark学习爱好者,是学习Spark SQL的入门和提高教材,也是Spark开发工程师开发过程中查阅Spark SQL的案头手册。
前言
第1章认识Spark SQL
1.1Spark SQL概述
1.1.1Spark SQL与DataFrame
1.1.2DataFrame与RDD的差异
1.1.3Spark SQL的发展历程
1.2从零起步掌握Hive
1.2.1Hive的本质是什么
1.2.2Hive安装和配置
1.2.3使用Hive分析搜索数据
1.3Spark SQL on Hive安装与配置
1.3.1安装Spark SQL
1.3.2安装MySQL
1.3.3启动Hive Metastore
1.4Spark SQL初试
1.4.1通过spark-shell来使用Spark SQL
1.4.2Spark SQL的命令终端
1.4.3Spark的Web UI
1.5本章小结
第2章DataFrame原理与常用操作
2.1DataFrame编程模型
2.2DataFrame基本操作实战
2.2.1数据准备
2.2.2启动交互式界面
2.2.3数据处理与分析
2.3通过RDD来构建DataFrame
2.4缓存表(列式存储)
2.5DataFrame API应用示例
2.6本章小结
第3章Spark SQL 操作多种数据源
3.1通用的加载/保存功能
3.1.1Spark SQL加载数据
3.1.2Spark SQL保存数据
3.1.3综合案例——电商热销商品排名
3.2Spark SQL操作Hive示例
3.3Spark SQL操作JSON数据集示例
3.4Spark SQL操作HBase示例
3.5Spark SQL操作MySQL示例
3.5.1安装并启动MySQL
3.5.2准备数据表
3.5.3操作MySQL表
3.6Spark SQL操作MongoDB示例
3.6.1安装配置MongoDB
3.6.2启动MongoDB
3.6.3准备数据
3.6.4Spark SQL操作MongoDB
3.7本章小结
第4章Parquet列式存储
4.1Parquet概述
4.1.1Parquet的基本概念
4.1.2Parquet数据列式存储格式应用举例
4.2Parquet的Block配置及数据分片
4.2.1Parquet的Block的配置
4.2.2Parquet 内部的数据分片
4.3Parquet序列化
4.3.1Spark实施序列化的目的
4.3.2Parquet两种序列化方式
4.4本章小结
第5章Spark SQL内置函数与窗口函数
5.1Spark SQL内置函数
5.1.1Spark SQL内置函数概述
5.1.2Spark SQL内置函数应用实例
5.2Spark SQL窗口函数
5.2.1Spark SQL窗口函数概述
5.2.2Spark SQL窗口函数分数查询统计案例
5.2.3Spark SQL窗口函数NBA常规赛数据统计案例
5.3本章小结
第6章Spark SQL UDF与UDAF
6.1UDF概述
6.2UDF示例
6.2.1Hobby_count函数
6.2.2Combine函数
6.2.3Str2Int函数
6.2.4Wsternstate函数
6.2.5ManyCustomers函数
6.2.6StateRegion函数
6.2.7DiscountRatio函数
6.2.8MakeStruct函数
6.2.9MyDateFilter函数
6.2.10MakeDT函数
6.3UDAF概述
6.4UDAF示例
6.4.1ScalaAggregateFunction函数
6.4.2GeometricMean函数
6.4.3CustomMean函数
6.4.4BelowThreshold函数
6.4.5YearCompare函数
6.4.6WordCount函数
6.5本章小结
第7章Thrift Server
7.1Thrift概述
7.1.1Thrift的基本概念
7.1.2Thrift的工作机制
7.1.3Thrift的运行机制
7.1.4一个简单的Thrift 实例
7.2Thrift Server的启动过程
7.2.1Thrift Sever启动详解
7.2.2HiveThriftServer2类的解析
7.3Beeline操作
7.3.1Beeline连接方式
7.3.2在Beeline中进行SQL查询操作
7.3.3通过Web控制台查看用户进行的操作
7.4Thrift Server应用示例
7.4.1示例源代码
7.4.2关键代码行解析
7.4.3测试运行
7.4.4运行结果解析
7.4.5Spark Web控制台查看运行日志
7.5本章小结
第8章Spark SQL综合应用案例
8.1综合案例实战——电商网站日志多维度数据分析
8.1.1数据准备
8.1.2数据说明
8.1.3数据创建
8.1.4数据导入
8.1.5数据测试和处理
8.2综合案例实战——电商网站搜索排名统计
8.2.1案例概述
8.2.2数据准备
8.2.3实现用户每天搜索前3名的商品排名统计
8.3本章小结
MapReduce计算模型的使用会越来越少,终将被Apache Spark所取代。
——Hadoop之父Doug Cutting写作背景Spark是一个快速大规模数据处理的通用引擎。它给Java、Scala、Python和R等语言提供了高级API,并基于统一抽象的RDD(弹性分布式数据集),逐渐形成了一套自己的生态系统。这个生态系统主要包括负责SQL和结构化数据处理的Spark SQL、负责实时流处理的Spark Streaming、负责图计算的Spark GraphX以及机器学习子框架Mlib。Spark在处理各种场景时,提供给用户统一的编程体验,可极大地提高编程效率。
Hive是运行在Hadoop上的SQL on Hadoop工具,它的推出是为了给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,但是MapReduce在计算过程中消耗大量I/O资源,降低了运行效率。为了提高SQL on Hadoop的效率,Shark出现了,它使得SQL on Hadoop的性能比Hive有了10~100倍的提高。但Shark对于Hive的过度依赖(如采用Hive的语法解析器、查询优化器等),制约了Spark的发展,所以提出了Spark SQL项目,Spark SQL抛弃Shark原有的弊端,又汲取了Shark的一些优点,如内存列存储(In-Memory Columnar Storage)、Hive的兼容性等,由于摆脱了对Hive的依赖性,Spark SQL在数据兼容、性能优化、组件扩展等方面的性能都得到了极大的提升。
Spark SQL是Spark生态环境中核心和基础的组件,是掌握Spark的关键所在。由于目前市场上介绍Spark技术的书籍比较少,尤其是单独讲解Spark SQL的书更是凤毛麟角,我们特意编写了这本理论和实战相结合的Spark SQL书籍,在介绍Spark SQL核心技术的同时又配备了丰富的示例,同时还穿插了源代码的分析,使读者能从更深层次来把握Spark SQL的核心技术。
内容速览本书完全从企业级开发的角度出发,结合多个企业级应用案例,深入剖析Spark SQL。
全书一共分为8章,主要内容概括如下:
第1章认识Spark SQL,引领读者了解Spark SQL的基础知识,接下来的第2章至第7章,结合实战案例,引导读者掌握Spark SQL的核心知识,这6章内容分别为:DataFrame原理与常用操作、Spark SQL操作多种数据源、Parquet列式存储、Spark SQL内置函数与窗口函数、Spark SQL UDF与UDAF、Thrift Server;本书的后部分,第8章Spark SQL综合应用案例归纳并综合运用了全部Spark SQL知识点,是深入理解Spark SQL的经典案例。
本书可以使读者对Spark SQL有深入的理解,是Spark爱好者用来学习Spark SQL的理想教程,也是Spark开发工程师在开发过程中可随时查阅的案头手册。
本书作者本书由王家林和段智华编写。
预备知识在学习本书之前读者需要熟悉基本的Linux命令及Java、Scala语言,掌握基本的Spark知识架构,能够搭建Spark集群环境。
致谢在本书编写的过程中,作者参考了很多网络上的书籍和博客,在此谢谢各位作者,正是你们的无私奉献,才推动了Spark技术的快速发展。
特别感谢“小小”同学为本书的编写提供的各种协调和热心帮助。
由于笔者能力有限,书中难免存在错误或表达不准确的内容,恳请大家批评指正,希望大家一起努力使Spark技术在大数据计算领域里推广开来。
作者2017.9
评论
还没有评论。