4.4 用户推荐指数
8.1
豆瓣评分
可以朗读
语音朗读
252千字
字数
2021-11-01
发行日期
展开全部
主编推荐语
涵盖Spark 3.0的新特性,着重展示如何利用机器学习算法执行大数据分析。
内容简介
本书的主角是在大数据时代应运而生的数据处理与分析利器——Spark。你将通过丰富的示例学习如何使用Spark的结构化数据API,利用Spark SQL进行交互式查询,掌握Spark应用的优化之道,用Spark和Delta Lake等开源工具构建可靠的数据湖,并用MLlib库实现机器学习流水线。
随着Spark从2.x版本升级到3.0版本,本书第2版做了全面的更新,以体现Spark生态系统在机器学习、流处理技术等方面的发展,另新增一章详解Spark 3.0引入的新特性。
目录
- 版权信息
- 版权声明
- O'Reilly Media, Inc.介绍
- 译者序
- 对本书的赞誉
- 序
- 前言
- 第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 模型管理
- 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 小结
- 作者简介
- 封面简介
- 看完了
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。