热门搜索: 中考 高考 考试 开卷17
服务电话 024-96192/23945006
 

Spark快速大数据分析 第2版

编号:
wx1202538550
销售价:
¥103.03
(市场价: ¥119.80)
赠送积分:
103
数量:
   
商品介绍

1.本书作者均来自Spark的母公司Databricks。他们将带你开始使用Spark,并了解如何利用它适应这个属于大数据和机器学习的新时代。
2.第2版在版的基础上做了大量更新,涵盖Spark 3.0的新特性,并着重展示如何利用机器学习算法执行大数据分析。
3.Spark项目创始人Matei Zaharia、Spark PMC成员Reynold Xin力荐。

毋庸置疑,数据已经成为现代化企业的重要资产,大数据分析技术则是企业挖掘数据价值的核心利器。一直以来,Spark就是大数据分析领域的佼佼者,也已经成为一站式大数据分析引擎的事实标准。

* 学习使用Python、Java、Scala的结构化数据API
* 理解Spark SQL引擎的原理
* 掌握Spark应用的优化技巧
* 了解如何读写数据源:JSON、Parquet、CSV、Avro、ORC等
* 使用Structured Streaming分析批式数据和流式数据
* 使用Spark和Delta Lake构建湖仓一体的系统
* 使用MLlib开发机器学习流水线

本书的主角是在大数据时代应运而生的数据处理与分析利器——Spark。你将通过丰富的示例学习如何使用Spark的结构化数据API,利用Spark SQL进行交互式查询,掌握Spark应用的优化之道,用Spark和Delta Lake等开源工具构建可靠的数据湖,并用MLlib库实现机器学习流水线。随着Spark从2.x版本升级到3.0版本,本书第2版做了全面的更新,以体现Spark生态系统在机器学习、流处理技术等方面的发展,另新增一章详解Spark 3.0引入的新特性。

【作者简介】

朱尔斯·S. 达米吉(Jules S. Damji)是Databricks的不错开发人员,也是MLflow的贡献者。

布鲁克·韦尼希(Brooke Wenig)是Databricks的机器学习专家。

泰瑟加塔·达斯(Tathagata Das)是Databricks的软件工程师,也是Apache Spark PMC成员。

丹尼·李(Denny Lee)是Databricks的软件工程师。

【译者简介】

王道远

目前就职于阿里云开源大数据平台数据湖存储团队,花名“健身”,主要负责数据湖架构下的缓存优化工作。有多年的大数据开发经验,熟悉Spark源码,从2014年开始参与Spark项目,曾为Spark贡献大量修复和新特性,也曾作为主要贡献者参与了OAP和SparkCube等Spark生态开源项目的开发。

译者序 xiii
对本书的赞誉 xv
序 .xvii
前言 xix
第 1章  Apache Spark简介:一站式分析引擎 1
1.1  Spark的起源 1
1.1.1  谷歌的大数据和分布式计算 1
1.1.2  雅虎的Hadoop 2
1.1.3  Spark在AMPLab崭露头角 3
1.2  什么是Spar 3
1.2.1  快速 4
1.2.2  易用 4
1.2.3  模块化 4
1.2.4  可扩展 5
1.3  一站式数据分析 5
1.3.1  由Spark组件组成的一站式软件栈 6
1.3.2  Spark的分布式执行 9
1.4  开发者体验 12
1.4.1  哪些人用Spark,用它做什么 13
1.4.2  社区接受度与社区发展 14
第 2 章  下载并开始使用Apache Spark 16
2.1  第 1 步:下载Spark 16
2.2  第 2 步:使用Scala shell 或PySpark shell 18
2.3  第3 步:理解Spark 应用的相关概念 22
2.3.1  Spark 应用与SparkSession 22
2.3.2  Spark 作业 23
2.3.3  Spark 执行阶段 23
2.3.4  Spark 任务 24
2.4  转化操作、行动操作以及惰性求值 24
2.5  Spark UI 26
2.6  第 一个独立应用 29
2.6.1  统计M&M 巧克力豆 29
2.6.2  用Scala 构建独立应用 34
2.7  小结 36
第3 章  Apache Spark 的结构化数据API 37
3.1  RDD 的背后是什么 37
3.2  Spark 支持结构化数据 38
3.3  DataFrame API 41
3.3.1  Spark 的基本数据类型 41
3.3.2  Spark 中结构化的复杂数据类型 42
3.3.3  表结构与DataFrame 43
3.3.4  列与表达式 47
3.3.5  行 49
3.3.6  常见的DataFrame 操作 50
3.3.7  完整的DataFrame 示例 59
3.4  Dataset API 60
3.4.1  有类型对象、无类型对象,以及普通行 61
3.4.2  创建Dataset 62
3.4.3  Dataset 操作 63
3.4.4  完整的Dataset 示例 65
3.5  对比DataFrame 和Dataset 65
3.6  Spark SQL 及其底层引擎 66
3.7  小结 71
第4 章  Spark SQL 与DataFrame:内建数据源概览 73
4.1  在Spark 应用中使用Spark SQL 74
4.2  SQL 表和视图 79
4.2.1  有管理表和无管理表 79
4.2.2  创建SQL 数据库和SQL 表 79
4.2.3  创建视图 80
4.2.4  查看元数据 82
4.2.5  缓存SQL 表 82
4.2.6  将表读取为DataFrame 82
4.3  DataFrame 和SQL 表的数据源 83
4.3.1  DataFrameReader 83
4.3.2  DataFrameWriter 85
4.3.3  Parquet 86
4.3.4  JSON 88
4.3.5  CSV 90
4.3.6  Avro 92
4.3.7  ORC 94
4.3.8  图像 96
4.3.9  二进制文件 97
4.4  小结 98
第5 章  Spark SQL 与DataFrame:读写外部数据源 100
5.1  Spark SQL 与Apache Hive 100
5.2  用Spark SQL shell、Beeline 和Tableau 查询 106
5.2.1  使用Spark SQL shell 106
5.2.2  使用Beeline 107
5.2.3  使用Tableau 108
5.3  外部数据源 114
5.3.1  JDBC 和SQL 数据库 114
5.3.2  PostgreSQL 115
5.3.3  MySQL 117
5.3.4  Azure Cosmos DB 118
5.3.5  MS SQL Server 120
5.3.6  其他外部数据源 121
5.4  DataFrame 和Spark SQL 的高阶函数 121
5.4.1  方式1:打散再重组 121
5.4.2  方式2:用户自定义函数 122
5.4.3  针对复杂数据类型的内建函数 122
5.4.4  高阶函数 124
5.5  常用的DataFrame 操作和Spark SQL 操作 127
5.5.1  联合 130
5.5.2  连接 130
5.5.3  窗口 131
5.5.4  修改 134
5.6  小结 137
第6 章  Spark SQL 与Dataset 138
6.1  Java 与Scala 共用一套API 138
6.2  操作Dataset 140
6.2.1  创建示例数据 141
6.2.2  转化示例数据 142
6.3  Dataset 与DataFrame 的内存管理 147
6.4  Dataset 编码器 147
6.4.1  Spark 内部格式与Java 对象格式 148
6.4.2  序列化与反序列化 148
6.5  使用Dataset 的开销 149
6.6  小结 151
第7 章  Spark 应用的优化与调优 152
7.1  为效率而优化与调优 152
7.1.1  查看与设置Spark 配置 152
7.1.2  为大型作业扩展Spark 155
7.2  数据的缓存与持久化 160
7.2.1  DataFrame.cache() 161
7.2.2  DataFrame.persist() 162
7.2.3  什么时候应该缓存和持久化 164
7.2.4  什么时候不应该缓存和持久化 164
7.3  Spark 的各种连接算法 164
7.3.1  广播哈希连接 165
7.3.2  混洗排序合并连接 166
7.4  查看Spark UI 173
7.5  小结 180
第8 章  结构化流处理 181
8.1  Spark 流处理引擎的演进过程 181
8.1.1  以微型批模拟的流处理 182
8.1.2  从DStream 获取的经验教训 183
8.1.3  Structured Streaming 的设计哲学 183
8.2  Structured Streaming 的编程模型 184
8.3  Structured Streaming 查询 186
8.3.1  五步定义流式查询 186
8.3.2  探究活跃的流式查询 191
8.3.3  失败恢复与“精确一次”语义 192
8.3.4  监控活跃的查询 194
8.4  流式数据源与数据池 196
8.4.1  文件 197
8.4.2  Kafka 199
8.4.3  自定义流式数据源与数据池 200
8.5  数据转化 204
8.5.1  增量执行与流处理状态 204
8.5.2  无状态转化操作 204
8.5.3  有状态转化操作 205
8.6  有状态的流式聚合 207
8.6.1  不根据时间维度进行聚合 207
8.6.2  使用事件时间窗口进行聚合 208
8.7  流式连接 214
8.7.1  流与静态表连接 214
8.7.2  流与流连接 215
8.8  任意的有状态计算 220
8.8.1  用mapGroupsWithState() 为任意有状态操作建模 220
8.8.2  用超时管理不活跃的分组 223
8.8.3  用flatMapGroupsWithState() 进行通用操作 226
8.9  性能调优 227
8.10  小结 229
第9 章  用Apache Spark 构建可靠的数据湖 230
9.1  最佳存储解决方案的重要特点 230
9.2  数据库 231
9.2.1  数据库简介 231
9.2.2  用Spark 读写数据库 232
9.2.3  数据库的不足之处 232
9.3  数据湖 233
9.3.1  数据湖简介 233
9.3.2  用Spark 读写数据湖 233
9.3.3  数据湖的不足之处 234
9.4  湖仓一体:下一代存储解决方案 235
9.4.1  Apache Hudi 236
9.4.2  Apache Iceberg 236
9.4.3  Delta Lake 236
9.5  用Spark 与Delta Lake 构建湖仓一体的系统 237
9.5.1  为使用Delta Lake 配置Spark 237
9.5.2  把数据加载到Delta Lake 表中 238
9.5.3  把数据流加载到Delta Lake 表中 240
9.5.4  写数据时强化表结构约束以防止数据损坏 241
9.5.5  修改表结构以适应数据变化 242
9.5.6  转化已有数据 242
9.5.7  根据操作历史审计数据变更 245
9.5.8  用时间旅行功能查询表以前的快照数据 245
9.6  小结 246
第 10 章  用MLlib 实现机器学习 247
10.1  什么是机器学习 247
10.1.1  监督学习 248
10.1.2  无监督学习 249
10.1.3  为什么将Spark 用于机器学习 250
10.2  设计机器学习流水线 251
10.2.1  接入并探索数据 251
10.2.2  创建训练集与测试集 252
10.2.3  为转化器准备特征 254
10.2.4  理解线性回归 255
10.2.5  用预估器构建模型 256
10.2.6  创建流水线 257
10.2.7  评估模型 262
10.2.8  保存和加载模型 266
10.3  超参数调优 266
10.3.1  基于树的模型 267
10.3.2  k 折交叉验证 274
10.3.3  优化流水线 277
10.4  小结 279
第 11 章  用Apache Spark管理、部署与伸缩机器学习流水线 280
11.1  模型管理 280
11.2  用MLlib 部署模型所用的选项 286
11.2.1  批处理 287
11.2.2  流处理 289
11.2.3  导出模型用于实时预测的模式 290
11.3  利用Spark 使用非MLlib 模型 291
11.3.1  Pandas UDF 291
11.3.2  将Spark 用于分布式超参数调优 293
11.4  小结 295
第 12 章  尾声:Apache Spark 3.0 296
12.1  Spark 内核与Spark SQL 296
12.1.1  动态分区裁剪 296
12.1.2  自适应查询执行 298
12.1.3  SQL 连接提示 301
12.1.4  Catalog 插件API 与DataSourceV2 302
12.1.5  可感知加速器的调度器 303
12.2  Structured Streaming 304
12.3  PySpark、Pandas UDF 和Pandas 函数API 306
12.3.1  重新设计的带有Python 类型提示的Pandas UDF 306
12.3.2  Pandas UDF 中的迭代器支持 307
12.3.3  新的Pandas 函数API 307
12.4  有改动的功能 308
12.4.1  支持的与不推荐使用的编程语言 309
12.4.2  DataFrame API 和Dataset API 的改动 309
12.4.3  DataFrame 与SQL 的explain 命令 309
12.5  小结 311
作者简介 313
封面简介 313

"这本书提供了一种系统学习Spark的方法,并介绍了该项目的发展近况,是Spark开发人员上手大数据的好途径。"

--Reynold Xin
Databricks联合创始人、Apache Spark PMC成员

"对于希望学习Spark并想构建可伸缩的可靠大数据应用的数据科学家和数据工程师来说,这本书应成为常备指南。"

--Ben Lorica
Databricks数据科学家、Spark + AI峰会项目主席

"在信息化时代,数据已经成为现代化企业的重要资产,大数据分析技术也已经成为企业挖掘数据价值的核心利器。近10年来,随着开源技术理念的蓬勃发展,开源大数据技术体系已经成为行业的主流选择,Apache Spark就是其中的很好代表。凭借很好的架构设计,Spark 可以在数据仓库、数据湖和机器学习领域快速处理海量数据,加速各行各业实现数字化转型。"

--王峰,花名"莫问"
阿里云开源大数据平台负责人

"转眼间Apache Spark已经走过了近12个年头。作为一个12年的项目,Spark并未逐渐凋零,而是在云原生、湖仓一体、AI等方面爆发出更强的生命力。这本书的第2版在为大家介绍Spark基本原理的同时,也花了不少篇幅介绍它在这些新兴领域中的应用。希望你通过此书对Spark的基本原理及未来发展有一个系统的了解,也希望Spark在未来的10年能持续进化,在大数据领域擦出更多的'火花'。"

--邵赛赛
腾讯专家工程师,数据湖团队负责人

商品参数
基本信息
出版社 人民邮电出版社
ISBN 9787115576019
条码 9787115576019
编者 [美] 朱尔斯·S. 达米吉 [美] 布鲁克·韦尼希 [印] 泰瑟加塔·达斯 [美] 丹尼·李
译者
出版年月 2021-11-01 00:00:00.0
开本 16开
装帧 平装
页数 314
字数
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]