万本电子书0元读

万本电子书0元读

顶部广告

Spark快速大数据分析(第2版)电子书

1.本书作者均来自Spark的母公司Databricks。他们将带你始使用Spark,并了解如何利用它适应这个属于大数据和机器学习的新时代。 2.第2版在第1版的基础上做了大量更新,涵盖Spark 3.0的新特性,并着重展示如何利用机器学习算法执行大数据分析。 3.Spark项目创始人Matei Zaharia、Spark PMC成员Reynold Xin力荐。 毋庸置疑,数据已经成为现代化企业的重要资产,大数据分析技术则是企业挖掘数据价值的核心利器。一直以来,Spark就是大数据分析领域的佼佼者,也已经成为一站式大数据分析引擎的事实标准。

售       价:¥

纸质售价:¥89.10购买纸书

27人正在读 | 0人评论 6.2

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
本书的主角是在大数据时代应运而生的数据处理与分析利器——Spark。你将通过丰富的示例学习如何使用Spark的结构化数据API,利用Spark SQL行交互式查询,掌握Spark应用的优化之道,用Spark和Delta Lake等源工具构建可靠的数据湖,并用MLlib库实现机器学习流水线。随着Spark从2.x版本升级到3.0版本,本书第2版做了全面的更新,以体现Spark生态系统在机器学习、流处理技术等方面的发展,另新增一章详解Spark 3.0引的新特性。<br/>【推荐语】<br/>1.本书作者均来自Spark的母公司Databricks。他们将带你始使用Spark,并了解如何利用它适应这个属于大数据和机器学习的新时代。 2.第2版在第1版的基础上做了大量更新,涵盖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发机器学习流水线<br/>【作者】<br/>【作者简介】 朱尔斯·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生态源项目的发。<br/>
目录展开

版权声明

O'Reilly Media, Inc.介绍

业界评论

译者序

对本书的赞誉

前言

目标读者

本书结构

代码示例说明

使用的软件和配置

排版约定

使用代码示例

O'Reilly在线学习平台(O'Reilly Online Learning)

联系我们

致谢

第1章 Apache Spark 简介:一站式分析引擎

1.1 Spark的起源

1.1.1 谷歌的大数据和分布式计算

1.1.2 雅虎的Hadoop

1.1.3 Spark在AMPLab崭露头角

1.2 什么是Spark

1.2.1 快速

1.2.2 易用

1.2.3 模块化

1.2.4 可扩展

1.3 一站式数据分析

1.3.1 由Spark组件组成的一站式软件栈

1.3.2 Spark的分布式执行

1.4 开发者体验

1.4.1 哪些人用Spark,用它做什么

1.4.2 社区接受度与社区发展

第2章 下载并开始使用 Apache Spark

2.1 第1步:下载Spark

Spark的目录和文件

2.2 第2步:使用Scala shell或PySpark shell

使用本地机器

2.3 第3步:理解Spark应用的相关概念

2.3.1 Spark应用与SparkSession

2.3.2 Spark作业

2.3.3 Spark执行阶段

2.3.4 Spark任务

2.4 转化操作、行动操作以及惰性求值

窄转化与宽转化

2.5 Spark UI

2.6 第一个独立应用

2.6.1 统计M&M巧克力豆

2.6.2 用Scala构建独立应用

2.7 小结

第3章 Apache Spark 的结构化数据 API

3.1 RDD的背后是什么

3.2 Spark支持结构化数据

关键优点与好处

3.3 DataFrame API

3.3.1 Spark的基本数据类型

3.3.2 Spark中结构化的复杂数据类型

3.3.3 表结构与DataFrame

3.3.4 列与表达式

3.3.5 行

3.3.6 常见的DataFrame操作

3.3.7 完整的DataFrame示例

3.4 Dataset API

3.4.1 有类型对象、无类型对象,以及普通行

3.4.2 创建Dataset

3.4.3 Dataset操作

3.4.4 完整的Dataset示例

3.5 对比DataFrame和Dataset

何时选用RDD

3.6 Spark SQL及其底层引擎

Catalyst优化器

3.7 小结

第4章 Spark SQL 与 DataFrame:内建数据源概览

4.1 在Spark应用中使用Spark SQL

基础查询示例

4.2 SQL表和视图

4.2.1 有管理表和无管理表

4.2.2 创建SQL数据库和SQL表

4.2.3 创建视图

4.2.4 查看元数据

4.2.5 缓存SQL表

4.2.6 将表读取为DataFrame

4.3 DataFrame和SQL表的数据源

4.3.1 DataFrameReader

4.3.2 DataFrameWriter

4.3.3 Parquet

4.3.4 JSON

4.3.5 CSV

4.3.6 Avro

4.3.7 ORC

4.3.8 图像

4.3.9 二进制文件

4.4 小结

第5章 Spark SQL 与 DataFrame:读写外部数据源

5.1 Spark SQL与Apache Hive

用户自定义函数

5.2 用Spark SQL shell、Beeline和Tableau查询

5.2.1 使用Spark SQL shell

5.2.2 使用Beeline

5.2.3 使用Tableau

5.3 外部数据源

5.3.1 JDBC和SQL数据库

5.3.2 PostgreSQL

5.3.3 MySQL

5.3.4 Azure Cosmos DB

5.3.5 MS SQL Server

5.3.6 其他外部数据源

5.4 DataFrame和Spark SQL的高阶函数

5.4.1 方式1:打散再重组

5.4.2 方式2:用户自定义函数

5.4.3 针对复杂数据类型的内建函数

5.4.4 高阶函数

5.5 常用的DataFrame操作和Spark SQL操作

5.5.1 联合

5.5.2 连接

5.5.3 窗口

5.5.4 修改

5.6 小结

第6章 Spark SQL 与 Dataset

6.1 Java与Scala共用一套API

用于Dataset的Scala样例类和JavaBean类

6.2 操作Dataset

6.2.1 创建示例数据

6.2.2 转化示例数据

6.3 Dataset与DataFrame的内存管理

6.4 Dataset编码器

6.4.1 Spark内部格式与Java对象格式

6.4.2 序列化与反序列化

6.5 使用Dataset的开销

减少开销的策略

6.6 小结

第7章 Spark 应用的优化与调优

7.1 为效率而优化与调优

7.1.1 查看与设置Spark配置

7.1.2 为大型作业扩展Spark

7.2 数据的缓存与持久化

7.2.1 DataFrame.cache()

7.2.2 DataFrame.persist()

7.2.3 什么时候应该缓存和持久化

7.2.4 什么时候不应该缓存和持久化

7.3 Spark的各种连接算法

7.3.1 广播哈希连接

7.3.2 混洗排序合并连接

7.4 查看Spark UI

Spark UI的标签页

7.5 小结

第8章 结构化流处理

8.1 Spark流处理引擎的演进过程

8.1.1 以微型批模拟的流处理

8.1.2 从DStream获取的经验教训

8.1.3 Structured Streaming的设计哲学

8.2 Structured Streaming的编程模型

8.3 Structured Streaming查询

8.3.1 五步定义流式查询

8.3.2 探究活跃的流式查询

8.3.3 失败恢复与“精确一次”语义

8.3.4 监控活跃的查询

8.4 流式数据源与数据池

8.4.1 文件

8.4.2 Kafka

8.4.3 自定义流式数据源与数据池

8.5 数据转化

8.5.1 增量执行与流处理状态

8.5.2 无状态转化操作

8.5.3 有状态转化操作

8.6 有状态的流式聚合

8.6.1 不根据时间维度进行聚合

8.6.2 使用事件时间窗口进行聚合

8.7 流式连接

8.7.1 流与静态表连接

8.7.2 流与流连接

8.8 任意的有状态计算

8.8.1 用mapGroupsWithState()为任意有状态操作建模

8.8.2 用超时管理不活跃的分组

8.8.3 用flatMapGroupsWithState()进行通用操作

8.9 性能调优

8.10 小结

第9章 用 Apache Spark 构建可靠的数据湖

9.1 最佳存储解决方案的重要特点

9.2 数据库

9.2.1 数据库简介

9.2.2 用Spark读写数据库

9.2.3 数据库的不足之处

9.3 数据湖

9.3.1 数据湖简介

9.3.2 用Spark读写数据湖

9.3.3 数据湖的不足之处

9.4 湖仓一体:下一代存储解决方案

9.4.1 Apache Hudi

9.4.2 Apache Iceberg

9.4.3 Delta Lake

9.5 用Spark与Delta Lake构建湖仓一体的系统

9.5.1 为使用Delta Lake配置Spark

9.5.2 把数据加载到Delta Lake表中

9.5.3 把数据流加载到Delta Lake表中

9.5.4 写数据时强化表结构约束以防止数据损坏

9.5.5 修改表结构以适应数据变化

9.5.6 转化已有数据

9.5.7 根据操作历史审计数据变更

9.5.8 用时间旅行功能查询表以前的快照数据

9.6 小结

第10章 用 MLlib 实现机器学习

10.1 什么是机器学习

10.1.1 监督学习

10.1.2 无监督学习

10.1.3 为什么将Spark用于机器学习

10.2 设计机器学习流水线

10.2.1 接入并探索数据

10.2.2 创建训练集与测试集

10.2.3 为转化器准备特征

10.2.4 理解线性回归

10.2.5 用预估器构建模型

10.2.6 创建流水线

10.2.7 评估模型

10.2.8 保存和加载模型

10.3 超参数调优

10.3.1 基于树的模型

10.3.2 k 折交叉验证

10.3.3 优化流水线

10.4 小结

第11章 用 Apache Spark 管理、部署与伸缩机器学习流水线

11.1 模型管理

MLflow

11.2 用MLlib部署模型所用的选项

11.2.1 批处理

11.2.2 流处理

11.2.3 导出模型用于实时预测的模式

11.3 利用Spark使用非MLlib模型

11.3.1 Pandas UDF

11.3.2 将Spark用于分布式超参数调优

11.4 小结

第12章 尾声:Apache Spark 3.0

12.1 Spark内核与Spark SQL

12.1.1 动态分区裁剪

12.1.2 自适应查询执行

12.1.3 SQL连接提示

12.1.4 Catalog插件API与DataSourceV2

12.1.5 可感知加速器的调度器

12.2 Structured Streaming

12.3 PySpark、Pandas UDF和Pandas函数API

12.3.1 重新设计的带有Python类型提示的Pandas UDF

12.3.2 Pandas UDF中的迭代器支持

12.3.3 新的Pandas函数API

12.4 有改动的功能

12.4.1 支持的与不推荐使用的编程语言

12.4.2 DataFrame API和Dataset API的改动

12.4.3 DataFrame与SQL的explain命令

12.5 小结

作者简介

封面简介

看完了

累计评论(1条) 3个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部