Spark快速大数据分析(第2版)
Jules S. Damji, Brooke Wenig, Tathagata Das, Denny Lee
王道远 译
出版时间:2021年11月
页数:314
毋庸置疑,数据已经成为现代化企业的重要资产,大数据分析技术则是企业挖掘数据价值的核心利器。一直以来,Spark就是大数 据分析领域的佼佼者,也已经成为一站式大数据分析引擎的事实标准。
本书作者均来自Spark的母公司Databricks。他们将带你开始使用Spark,并了解如何利用它适应这个属于大数据和机器学习的新时代。第2版在第1版的基础上做了大量更新,涵盖Spark 3.0的新特性,并着重展示如何利用机器学习算法执行大数据分析。
● 学习使用Python、Java、Scala的结构化数据API
● 理解Spark SQL引擎的原理
● 掌握Spark应用的优化技巧
● 了解如何读写数据源:JSON、Parquet、CSV、Avro、ORC等
● 使用Structured Streaming分析批式数据和流式数据
● 使用Spark和Delta Lake构建湖仓一体的系统
● 使用MLlib开发机器学习流水线
  1. 译者序
  2. 对本书的赞誉
  3. 前言
  4. 第1章 Apache Spark简介:一站式分析引擎
  5. 1.1 Spark的起源
  6. 1.1.1 谷歌的大数据和分布式计算
  7. 1.1.2 雅虎的Hadoop
  8. 1.1.3 Spark在AMPLab崭露头角
  9. 1.2 什么是Spar
  10. 1.2.1 快速
  11. 1.2.2 易用
  12. 1.2.3 模块化
  13. 1.2.4 可扩展
  14. 1.3 一站式数据分析
  15. 1.3.1 由Spark组件组成的一站式软件栈
  16. 1.3.2 Spark的分布式执行
  17. 1.4 开发者体验
  18. 1.4.1 哪些人用Spark,用它做什么
  19. 1.4.2 社区接受度与社区发展
  20. 第2章 下载并开始使用Apache Spark
  21. 2.1 第1步:下载Spark
  22. 2.2 第2步:使用Scala shell或PySpark shell
  23. 2.3 第3步:理解Spark 应用的相关概念
  24. 2.3.1 Spark应用与SparkSession
  25. 2.3.2 Spark作业
  26. 2.3.3 Spark执行阶段
  27. 2.3.4 Spark任务
  28. 2.4 转化操作、行动操作以及惰性求值
  29. 2.5 Spark UI
  30. 2.6 第 一个独立应用
  31. 2.6.1 统计M&M巧克力豆
  32. 2.6.2 用Scala构建独立应用
  33. 2.7 小结
  34. 第3章 Apache Spark的结构化数据API
  35. 3.1 RDD的背后是什么
  36. 3.2 Spark支持结构化数据
  37. 3.3 DataFrame API
  38. 3.3.1 Spark的基本数据类型
  39. 3.3.2 Spark中结构化的复杂数据类型
  40. 3.3.3 表结构与DataFrame
  41. 3.3.4 列与表达式
  42. 3.3.5 行
  43. 3.3.6 常见的DataFrame操作
  44. 3.3.7 完整的DataFrame示例
  45. 3.4 Dataset API
  46. 3.4.1 有类型对象、无类型对象,以及普通行
  47. 3.4.2 创建Dataset
  48. 3.4.3 Dataset操作
  49. 3.4.4 完整的Dataset示例
  50. 3.5 对比DataFrame和Dataset
  51. 3.6 Spark SQL及其底层引擎
  52. 3.7 小结
  53. 第4章 Spark SQL与DataFrame:内建数据源概览
  54. 4.1 在Spark应用中使用Spark SQL
  55. 4.2 SQL表和视图
  56. 4.2.1 有管理表和无管理表
  57. 4.2.2 创建SQL数据库和SQL表
  58. 4.2.3 创建视图
  59. 4.2.4 查看元数据
  60. 4.2.5 缓存SQL表
  61. 4.2.6 将表读取为DataFrame
  62. 4.3 DataFrame和SQL表的数据源
  63. 4.3.1 DataFrameReader
  64. 4.3.2 DataFrameWriter
  65. 4.3.3 Parquet
  66. 4.3.4 JSON
  67. 4.3.5 CSV
  68. 4.3.6 Avro
  69. 4.3.7 ORC
  70. 4.3.8 图像
  71. 4.3.9 二进制文件
  72. 4.4 小结
  73. 第5章 Spark SQL与DataFrame:读写外部数据源
  74. 5.1 Spark SQL与Apache Hive
  75. 5.2 用Spark SQL shell、Beeline和Tableau查询
  76. 5.2.1 使用Spark SQL shell
  77. 5.2.2 使用Beeline
  78. 5.2.3 使用Tableau
  79. 5.3 外部数据源
  80. 5.3.1 JDBC和SQL数据库
  81. 5.3.2 PostgreSQL
  82. 5.3.3 MySQL
  83. 5.3.4 Azure Cosmos DB
  84. 5.3.5 MS SQL Server
  85. 5.3.6 其他外部数据源
  86. 5.4 DataFrame和Spark SQL的高阶函数
  87. 5.4.1 方式1:打散再重组
  88. 5.4.2 方式2:用户自定义函数
  89. 5.4.3 针对复杂数据类型的内建函数
  90. 5.4.4 高阶函数
  91. 5.5 常用的DataFrame操作和Spark SQL操作
  92. 5.5.1 联合
  93. 5.5.2 连接
  94. 5.5.3 窗口
  95. 5.5.4 修改
  96. 5.6 小结
  97. 第6章 Spark SQL与Dataset
  98. 6.1 Java与Scala共用一套API
  99. 6.2 操作Dataset
  100. 6.2.1 创建示例数据
  101. 6.2.2 转化示例数据
  102. 6.3 Dataset与DataFrame的内存管理
  103. 6.4 Dataset编码器
  104. 6.4.1 Spark内部格式与Java对象格式
  105. 6.4.2 序列化与反序列化
  106. 6.5 使用Dataset的开销
  107. 6.6 小结
  108. 第7章 Spark应用的优化与调优
  109. 7.1 为效率而优化与调优
  110. 7.1.1 查看与设置Spark配置
  111. 7.1.2 为大型作业扩展Spark
  112. 7.2 数据的缓存与持久化
  113. 7.2.1 DataFrame.cache()
  114. 7.2.2 DataFrame.persist()
  115. 7.2.3 什么时候应该缓存和持久化
  116. 7.2.4 什么时候不应该缓存和持久化
  117. 7.3 Spark的各种连接算法
  118. 7.3.1 广播哈希连接
  119. 7.3.2 混洗排序合并连接
  120. 7.4 查看Spark UI
  121. 7.5 小结
  122. 第8章 结构化流处理
  123. 8.1 Spark流处理引擎的演进过程
  124. 8.1.1 以微型批模拟的流处理
  125. 8.1.2 从DStream获取的经验教训
  126. 8.1.3 Structured Streaming的设计哲学
  127. 8.2 Structured Streaming的编程模型
  128. 8.3 Structured Streaming查询
  129. 8.3.1 五步定义流式查询
  130. 8.3.2 探究活跃的流式查询
  131. 8.3.3 失败恢复与“精确一次”语义
  132. 8.3.4 监控活跃的查询
  133. 8.4 流式数据源与数据池
  134. 8.4.1 文件
  135. 8.4.2 Kafka
  136. 8.4.3 自定义流式数据源与数据池
  137. 8.5 数据转化
  138. 8.5.1 增量执行与流处理状态
  139. 8.5.2 无状态转化操作
  140. 8.5.3 有状态转化操作
  141. 8.6 有状态的流式聚合
  142. 8.6.1 不根据时间维度进行聚合
  143. 8.6.2 使用事件时间窗口进行聚合
  144. 8.7 流式连接
  145. 8.7.1 流与静态表连接
  146. 8.7.2 流与流连接
  147. 8.8 任意的有状态计算
  148. 8.8.1 用mapGroupsWithState()为任意有状态操作建模
  149. 8.8.2 用超时管理不活跃的分组
  150. 8.8.3 用flatMapGroupsWithState()进行通用操作226
  151. 8.9 性能调优
  152. 8.10 小结
  153. 第9章 用Apache Spark构建可靠的数据湖
  154. 9.1 最佳存储解决方案的重要特点
  155. 9.2 数据库
  156. 9.2.1 数据库简介
  157. 9.2.2 用Spark读写数据库
  158. 9.2.3 数据库的不足之处
  159. 9.3 数据湖
  160. 9.3.1 数据湖简介
  161. 9.3.2 用Spark读写数据湖
  162. 9.3.3 数据湖的不足之处
  163. 9.4 湖仓一体:下一代存储解决方案
  164. 9.4.1 Apache Hudi
  165. 9.4.2 Apache Iceberg
  166. 9.4.3 Delta Lake
  167. 9.5 用Spark与Delta Lake构建湖仓一体的系统
  168. 9.5.1 为使用Delta Lake配置Spark
  169. 9.5.2 把数据加载到Delta Lake表中
  170. 9.5.3 把数据流加载到Delta Lake表中
  171. 9.5.4 写数据时强化表结构约束以防止数据损坏
  172. 9.5.5 修改表结构以适应数据变化
  173. 9.5.6 转化已有数据
  174. 9.5.7 根据操作历史审计数据变更
  175. 9.5.8 用时间旅行功能查询表以前的快照数据
  176. 9.6 小结
  177. 第10章 用MLlib实现机器学习
  178. 10.1 什么是机器学习
  179. 10.1.1 监督学习
  180. 10.1.2 无监督学习
  181. 10.1.3 为什么将Spark用于机器学习
  182. 10.2 设计机器学习流水线
  183. 10.2.1 接入并探索数据
  184. 10.2.2 创建训练集与测试集
  185. 10.2.3 为转化器准备特征
  186. 10.2.4 理解线性回归
  187. 10.2.5 用预估器构建模型
  188. 10.2.6 创建流水线
  189. 10.2.7 评估模型
  190. 10.2.8 保存和加载模型
  191. 10.3 超参数调优
  192. 10.3.1 基于树的模型
  193. 10.3.2 k折交叉验证
  194. 10.3.3 优化流水线
  195. 10.4 小结
  196. 第11章 用Apache Spark管理、部署与伸缩机器学习流水线
  197. 11.1 模型管理
  198. 11.2 用MLlib部署模型所用的选项
  199. 11.2.1 批处理
  200. 11.2.2 流处理
  201. 11.2.3 导出模型用于实时预测的模式
  202. 11.3 利用Spark使用非MLlib模型
  203. 11.3.1 Pandas UDF
  204. 11.3.2 将Spark用于分布式超参数调优
  205. 11.4 小结
  206. 第12章 尾声:Apache Spark 3.0
  207. 12.1 Spark内核与Spark SQL
  208. 12.1.1 动态分区裁剪
  209. 12.1.2 自适应查询执行
  210. 12.1.3 SQL连接提示
  211. 12.1.4 Catalog插件API与DataSourceV2
  212. 12.1.5 可感知加速器的调度器
  213. 12.2 Structured Streaming
  214. 12.3 PySpark、Pandas UDF和Pandas函数API
  215. 12.3.1 重新设计的带有Python类型提示的Pandas UDF
  216. 12.3.2 Pandas UDF中的迭代器支持
  217. 12.3.3 新的Pandas函数API
  218. 12.4 有改动的功能
  219. 12.4.1 支持的与不推荐使用的编程语言
  220. 12.4.2 DataFrame API和Dataset API的改动
  221. 12.4.3 DataFrame与SQL 的explain命令
  222. 12.5 小结
书名:Spark快速大数据分析(第2版)
译者:王道远 译
国内出版社:人民邮电出版社
出版时间:2021年11月
页数:314
书号:978-7-115-57601-9
原版书书名:Learning Spark, 2nd Edition
原版书出版商:O'Reilly Media
Jules S. Damji
 
朱尔斯·S. 达米吉(Jules S. Damji)是Databricks的高级开发人员,也是MLflow的贡献者。
 
 
Brooke Wenig
 
布鲁克·韦尼希(Brooke Wenig)是Databricks的机器学习专家。
 
 
Tathagata Das
 
泰瑟加塔·达斯(Tathagata Das)是Databricks的软件工程师,也是Apache Spark PMC成员。
 
 
Denny Lee
 
丹尼·李(Denny Lee)是Databricks的软件工程师。
 
 
购买选项
定价:119.80元
书号:978-7-115-57601-9
出版社:人民邮电出版社