标签
内容简介
《Spark SQL入门与实践指南》是面向初学者与实践者的一本 Spark SQL 教程。全书分为入门、基础、实践、优化四部分,共 9 章,所有示例代码均用 Scala 编写。入门篇(第 1—2 章)介绍 Spark 的诞生、Spark SQL 的发展脉络与能力边界,并带着读者完成 Spark 的简易安装、IDEA 开发环境准备,以及把程序打成 jar 包提交到集群的完整流程。基础篇(第 3—6 章)是全书的重点:先讲清 RDD 的创建、转化与行动操作、惰性求值、向 Spark 传递函数、缓存与 checkpoint 容错机制;再以 SparkSession 为入口,讲解 DataFrame 与 Dataset 的创建、基本操作、执行 SQL 查询、全局临时表和用户自定义函数(UDF);随后系统梳理 DataFrame 的行动操作与十余类常用转化操作,包括筛选、选列、排序、分组聚合、去重、合并、join、多表差集与空值处理等;最后讲解 load/save 通用函数、存储模式、分区与分桶,以及 Parquet、JSON、Hive 表和其他数据库等典型数据源。实践篇(第 7—8 章)以“基于 WiFi 探针的商业大数据分析”为工程案例,覆盖数据采集、清洗、客流分析与数据导出,并讲解完全分布式环境的搭建、数据清洗流程、远程调试与 Spark Web 界面使用。优化篇(第 9 章)围绕执行流程、内存管理、编程四大守则、调优七式、数据倾斜治理,以及 Tungsten 执行引擎和 Catalyst 解析引擎展开。
编辑推荐
很多讲 Spark 的书一上来就把分布式原理铺满半本书,读者还没跑通第一行代码就先被劝退。这本《Spark SQL入门与实践指南》走的是另一条路线:从装环境、建 IDEA 工程、打 jar 包提交开始,一路带你写出能跑的程序,再逐步加深到原理与调优,节奏对自学者相当友好。 它的几个实在之处:一是结构清晰,入门、基础、实践、优化四篇九章,先讲 RDD 打底,再过渡到 DataFrame/Dataset 和 SQL 查询,最后才谈性能,符合“先会用、再会快”的学习规律;二是操作讲得细,第 5 章把 DataFrame 的筛选、选列、排序、分组聚合、去重、union、join、求交求差、空值处理逐条列出,几乎可以当速查手册用;三是有一个完整的工程案例,围绕 WiFi 探针的商业数据分析,从数据采集、清洗、客流分析到导出全流程走一遍,帮读者建立工程思维而不只是会写 demo;四是调优篇不空谈,执行流程、内存、数据倾斜、Tungsten 和 Catalyst 都点到了。 当然要提醒一句:本书初版于 2018 年,案例基于当时的 Spark 2.x 与 Scala API。如今 Spark 3.x 已是主流,SQL 语法与 API 大体相通,但版本细节、参数配置、部分环境搭建步骤可能已有变化,动手时请对照官方文档做适配。把它当作“入门打底 + 工程思路”的书来用,性价比很高。
适合谁读
适合
- 刚接触 Spark、想从零跑通第一个结构化数据分析程序的自学者
- 熟悉 SQL、需要把分析能力迁移到海量数据上的数据分析师
- 已在用 Hadoop 生态、准备引入 Spark SQL 处理结构化数据的工程师
- 开设大数据课程的高校与培训机构师生,可作为实践教材
不适合
- 需要 Spark 3.x 最新 API 与云原生部署细节的资深开发者
- 只想读原理、不打算动手写代码的理论型读者
- 以 Python/PySpark 或 Java 为主要开发语言、不熟悉 Scala 的读者
阅读建议
- 按入门—基础—实践—优化的顺序读,第 2、4 章务必跟着动手,先把环境、打包提交和 SparkSession 跑通。
- 第 5 章适合当速查表使用:遇到具体 DataFrame 操作时回查对应小节,不必一次背完。
- 读第 7、8 章前先搭建一台或几台虚拟机练手,边搭完全分布式环境边对照案例走流程,收益最大。
- 书中基于 2018 年前后的 Spark 版本,实操时对照当前官方文档调整版本号与配置项,遇到 API 差异以官方说明为准。
出版社简介
清华大学出版社
中国 · 成立于 1980 年
清华大学出版社创立于1980年,库内收录图书57种,涵盖科学科普、医学、健康、法律、哲学读物与社科等方向。代表图书既有菠萝(李治中)的《癌症·真相:医生也在读》《癌症·新知》等医学科普作品,也有《阳光是最好的防腐剂:全球反腐大要案快递》等法律类读物,以及七格的《脑洞大开的哲学简史》、刘云浩的《从互联到新工业革命》等。作者资源包括科普作家、医学研究者、中国人民大学反贪硕士班及高校学者,体现出兼顾学术性与大众阅读的出版特色。因公开资料有限,此处仅依据库内图书归纳其出版方向。
目录
- 第一部分 入门篇
- 第1章 初识Spark SQL
- 1.1 Spark SQL的前世今生
- 1.2 Spark SQL能做什么
- 第2章 Spark安装、编程环境搭建以及打包提交
- 2.1 Spark的简易安装
- 2.2 准备编写Spark应用程序的IDEA环境
- 2.3 将编写好的Spark应用程序打包成jar提交到Spark上
- 第二部分 基础篇
- 第3章 Spark上的RDD编程
- 3.1 RDD基础(创建RDD、转化操作与行动操作、惰性求值、缓存概述、基本编程步骤)
- 3.2 RDD简单实例——wordcount
- 3.3 创建RDD(程序内部数据作为数据源、外部数据源)
- 3.4 RDD操作(转化操作、行动操作、惰性求值)
- 3.5 向Spark传递函数(匿名函数、静态方法与方法的引用、闭包)
- 3.6 常见的转化操作和行动操作(基本RDD转化操作与行动操作、键值对RDD、不同类型RDD之间的转换)
- 3.7 深入理解RDD
- 3.8 RDD缓存、持久化(缓存、持久化、持久化存储等级选取策略)
- 3.9 RDD checkpoint容错机制
- 第4章 Spark SQL编程入门
- 4.1 Spark SQL概述(是什么、通过什么实现、处理数据的优势、DataFrame)
- 4.2 Spark SQL编程入门示例(SparkSession、创建DataFrame、DataFrame基本操作、执行SQL查询、全局临时表、Dataset、将RDDs转化为DataFrame、用户自定义函数)
- 第5章 Spark SQL的DataFrame操作大全
- 5.1 由JSON文件生成所需的DataFrame对象
- 5.2 DataFrame上的行动操作
- 5.3 DataFrame上的转化操作(where、查询指定列、Column的巧妙应用、limit、order by与sort、group by、去重、聚合、union、join、字段统计信息、交集与差集、操作字段名、处理空值列)
- 第6章 Spark SQL支持的多种数据源
- 6.1 概述(通用load/save函数、手动指定选项、在文件上直接进行SQL查询、存储模式、持久化到表、bucket与排序分区操作)
- 6.2 典型结构化数据源(Parquet文件、JSON数据集、Hive表、其他数据库中的数据表)
- 第三部分 实践篇
- 第7章 Spark SQL工程实战之基于WiFi探针的商业大数据分析技术
- 7.1 功能需求(数据收集、数据清洗、客流数据分析、数据导出)
- 7.2 系统架构
- 7.3 功能设计
- 7.4 数据库结构
- 7.5 本章小结
- 第8章 第一个Spark SQL应用程序
- 8.1 完全分布式环境搭建(Java环境配置、Hadoop安装配置、Spark安装配置)
- 8.2 数据清洗
- 8.3 数据处理流程
常见问题
这本书适合完全没有大数据基础的读者吗?
可以,但需要一定前置知识。书中第 1—2 章会带读者装环境、写第一个程序,不过它默认你会 Java/Scala 基础语法、了解 Linux 基本操作。完全零基础的话,建议先补 Scala 或 Java 基础,再回来看。
书中代码用什么语言编写?
全部用 Scala,因为 Spark 框架本身也是用 Scala 写的,作者认为这样代码更简洁贴切。如果你主要用 Python 或 Java,思路和 API 可以迁移,但需要自行对照相应的 API 写法。
书里的版本较老,现在还值得读吗?
值得作为入门与工程思路的参考。本书 2018 年出版,示例基于当时的 Spark 2.x,而如今主流是 Spark 3.x。核心概念如 RDD、DataFrame、Dataset、Catalyst、数据倾斜治理依然适用,但环境搭建步骤与部分配置需按新版本文档更新。
没有集群环境能不能学这本书?
能。前六章的内容在单机 local 模式下即可完成,安装 Spark 后在本地跑 DataFrame 与 SQL 查询完全够用。只有第 7—8 章的全分布式环境与远程调试部分,才建议准备多台机器或虚拟机(也可先用伪分布式替代)。
实践案例讲的是什么内容?
是“基于 WiFi 探针的商业大数据分析”,属于商业客流分析场景:从探针数据采集、数据清洗,到客流数据分析与结果导出,并配套讲解系统架构、功能设计与数据库结构,走完一个完整小项目的流程。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。