YL13848 9787111591979 9787302496700
Spark SQL是Spark生态环境中核心和基础的组件,是掌握Spark的关键所在。本书从企业级开发的角度出发,结合多个企业级应用案例,深入剖析Spark SQL。全书共分为8章,包括:认识Spark SQL、DataFrame原理与常用操作、Spark SQL操作多种数据源、Parquet列式存储、Spark SQL内置函数与窗口函数、Spark SQL UDF与UDAF、Thrift Server、Spark SQL综合应用案例。
本书可以使读者对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本章小结
第一部分 入门篇
第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 Spark SQL编程入门示例 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
我选择这本书,是希望它能够成为我深入理解 Spark SQL 的敲门砖,并且能够为我提供一条清晰的学习路径。我之前也接触过一些大数据相关的书籍,但总感觉不够深入,或者过于理论化。这本书的“实例开发教程”和“入门与实践指南”的定位,让我觉得它会更加注重实际操作和解决问题的能力。我特别期待书中能够详细讲解 Spark SQL 的各种 API 和函数,并且通过丰富的代码示例来展示它们的用法。同时,我也希望这本书能够触及到数据存储管理的一些关键问题,比如如何选择合适的数据格式(Parquet、ORC 等),如何进行数据分区和分桶,以及如何利用这些技术来优化 Spark SQL 的查询性能。如果书中还能包含一些关于 Spark SQL 在实际项目中的应用案例,并且能够讲解这些案例的设计思路和实现细节,那对我来说将是莫大的帮助。我希望读完这本书,我能够对 Spark SQL 有一个扎实的基础,并且能够自信地将其应用于我的数据开发和分析工作中。
评分作为一名对数据分析工作有着执着追求的开发者,我一直在寻找一本能够系统性地讲解大数据分析技术、并且能够提供实践指导的书籍。这本书的标题“包邮Spark SQL大数据实例开发教程+入门与实践指南 数据存储管理分析书籍”让我眼前一亮,它精准地抓住了我最核心的需求。我特别关注书中关于“数据存储管理”的部分,因为我深知,没有良好的数据基础,任何高深的分析技术都将是空中楼阁。我希望这本书能详细介绍如何选择合适的数据存储方案,如何对数据进行有效的组织和管理,以及如何优化数据存储以提高查询效率。同时,“实例开发教程”和“入门与实践指南”这两个关键词也表明了本书的实用性。我期待书中能提供丰富、贴近实际项目开发需求的案例,能够从零开始,一步步地带领我掌握Spark SQL的开发技巧。我希望在阅读完这本书后,我能够对大数据存储、管理和分析有一个全面而深入的理解,并且能够独立设计和实现一套高效的大数据分析解决方案。
评分这本书我看了好久,终于趁着打折的时候入手了。说实话,我一直对大数据这个领域挺感兴趣的,尤其是在工作中接触到一些数据处理的需求,感觉光靠 Excel 和一些简单的脚本已经越来越力不从心了。Spark SQL 听起来就非常强大,能处理海量数据,还能用 SQL 的方式来操作,这对我这种 SQL 比较熟悉的人来说,简直是福音。我特别期待这本书能详细讲解 Spark SQL 的核心概念,比如 DataFrame 和 Dataset 的区别和用法,各种 SQL 函数的实现原理,以及如何在 Spark SQL 中进行高效的数据过滤、聚合和连接。还有,书中关于性能优化的部分,如果能给出一些实际的案例和调优技巧,那对我来说就太有价值了。毕竟,在大数据处理中,性能往往是决定项目成败的关键因素。我希望这本书能不仅仅是概念的堆砌,而是能真正地指导我如何去落地,如何去解决实际问题。读完这本书,我希望能对 Spark SQL 有一个系统性的认识,并且能独立完成一些大数据分析的任务。
评分这次买这本书,主要是因为被它的“实例开发教程”和“入门与实践指南”这些字眼吸引住了。我一直觉得,理论知识再扎实,如果没有实际操作的经验,也很难真正掌握一项技术。我希望这本书里能包含大量的代码示例,并且这些示例能覆盖到 Spark SQL 开发的各个方面,从最基础的数据读取、写入,到复杂的数据转换、清洗,再到更高级的窗口函数、UDF 的使用。更重要的是,我希望这些实例能贴近实际工作场景,比如处理电商交易数据、用户行为日志、物联网设备数据等等,这样我才能更好地将学到的知识应用到自己的工作中。书中关于数据存储管理的部分,我也很期待。毕竟,在大数据领域,高效的数据存储和管理是支撑一切分析和开发的基础。如果能介绍一些常见的分布式存储系统,比如 HDFS、S3,以及它们与 Spark SQL 的集成方式,那就更好了。我希望这本书能让我从“小白”变成一个能够独立开发 Spark SQL 应用的“小能手”。
评分我这次选择这本书,是希望能够系统地学习 Spark SQL 这个强大的工具,并且能够将其应用到实际的大数据开发工作中。我个人比较注重学习的深度和广度,所以希望这本书能够涵盖 Spark SQL 的方方面面,从基础的概念和原理,到进阶的应用和优化。我特别希望书中能够详细讲解 Spark SQL 的执行计划生成和优化机制,以及如何通过 SQL 语句的编写来影响 Spark 的执行效率。另外,我希望书中还能介绍一些 Spark SQL 与其他大数据组件的集成,比如与 Hive、HBase、Kafka 等的配合使用,这样我才能构建更完整的大数据处理流程。数据存储管理这部分我也非常感兴趣,希望能了解如何在高并发、海量数据的场景下,进行有效的数据存储和管理,以保证数据的一致性和可用性。这本书如果能够提供大量的实战案例,并且能够引导我解决实际开发中遇到的难题,那我将会非常满意。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有