注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計Spark快速大數(shù)據(jù)分析(第2版)

Spark快速大數(shù)據(jù)分析(第2版)

Spark快速大數(shù)據(jù)分析(第2版)

定 價:¥119.80

作 者: [美] 朱爾斯·S.達米吉,[美] 布魯克·韋尼希,[印] 泰瑟加塔·達斯,[美] 丹尼·李 著,王道遠 譯
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

ISBN: 9787115576019 出版時間: 2021-11-01 包裝: 平裝
開本: 16開 頁數(shù): 314 字數(shù):  

內(nèi)容簡介

  本書的主角是在大數(shù)據(jù)時代應運而生的數(shù)據(jù)處理與分析利器——Spark。你將通過豐富的示例學習如何使用Spark的結(jié)構化數(shù)據(jù)API,利用Spark SQL進行交互式查詢,掌握Spark應用的優(yōu)化之道,用Spark和Delta Lake等開源工具構建可靠的數(shù)據(jù)湖,并用MLlib庫實現(xiàn)機器學習流水線。隨著Spark從2.x版本升級到3.0版本,本書第2版做了全面的更新,以體現(xiàn)Spark生態(tài)系統(tǒng)在機器學習、流處理技術等方面的發(fā)展,另新增一章詳解Spark 3.0引入的新特性。

作者簡介

  【作者簡介】朱爾斯.S. 達米吉(Jules S. Damji)是Databricks的高級開發(fā)人員,也是MLflow的貢獻者。布魯克.韋尼希(Brooke Wenig)是Databricks的機器學習專家。泰瑟加塔.達斯(Tathagata Das)是Databricks的軟件工程師,也是Apache Spark PMC成員。丹尼.李(Denny Lee)是Databricks的軟件工程師。【譯者簡介】王道遠目前就職于阿里云開源大數(shù)據(jù)平臺數(shù)據(jù)湖存儲團隊,花名“健身”,主要負責數(shù)據(jù)湖架構下的緩存優(yōu)化工作。有多年的大數(shù)據(jù)開發(fā)經(jīng)驗,熟悉Spark源碼,從2014年開始參與Spark項目,曾為Spark貢獻大量修復和新特性,也曾作為主要貢獻者參與了OAP和SparkCube等Spark生態(tài)開源項目的開發(fā)。

圖書目錄

譯者序 xiii
對本書的贊譽 xv
序 .xvii
前言 xix
第 1章 Apache Spark簡介:一站式分析引擎 1
1.1 Spark的起源 1
1.1.1 谷歌的大數(shù)據(jù)和分布式計算 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 一站式數(shù)據(jù)分析 5
1.3.1 由Spark組件組成的一站式軟件棧 6
1.3.2 Spark的分布式執(zhí)行 9
1.4 開發(fā)者體驗 12
1.4.1 哪些人用Spark,用它做什么 13
1.4.2 社區(qū)接受度與社區(qū)發(fā)展 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 作業(yè) 23
2.3.3 Spark 執(zhí)行階段 23
2.3.4 Spark 任務 24
2.4 轉(zhuǎn)化操作、行動操作以及惰性求值 24
2.5 Spark UI 26
2.6 第 一個獨立應用 29
2.6.1 統(tǒng)計M&M 巧克力豆 29
2.6.2 用Scala 構建獨立應用 34
2.7 小結(jié) 36
第3 章 Apache Spark 的結(jié)構化數(shù)據(jù)API 37
3.1 RDD 的背后是什么 37
3.2 Spark 支持結(jié)構化數(shù)據(jù) 38
3.3 DataFrame API 41
3.3.1 Spark 的基本數(shù)據(jù)類型 41
3.3.2 Spark 中結(jié)構化的復雜數(shù)據(jù)類型 42
3.3.3 表結(jié)構與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 創(chuàng)建Dataset 62
3.4.3 Dataset 操作 63
3.4.4 完整的Dataset 示例 65
3.5 對比DataFrame 和Dataset 65
3.6 Spark SQL 及其底層引擎 66
3.7 小結(jié) 71
第4 章 Spark SQL 與DataFrame:內(nèi)建數(shù)據(jù)源概覽 73
4.1 在Spark 應用中使用Spark SQL 74
4.2 SQL 表和視圖 79
4.2.1 有管理表和無管理表 79
4.2.2 創(chuàng)建SQL 數(shù)據(jù)庫和SQL 表 79
4.2.3 創(chuàng)建視圖 80
4.2.4 查看元數(shù)據(jù) 82
4.2.5 緩存SQL 表 82
4.2.6 將表讀取為DataFrame 82
4.3 DataFrame 和SQL 表的數(shù)據(jù)源 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 小結(jié) 98
第5 章 Spark SQL 與DataFrame:讀寫外部數(shù)據(jù)源 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 外部數(shù)據(jù)源 114
5.3.1 JDBC 和SQL 數(shù)據(jù)庫 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 其他外部數(shù)據(jù)源 121
5.4 DataFrame 和Spark SQL 的高階函數(shù) 121
5.4.1 方式1:打散再重組 121
5.4.2 方式2:用戶自定義函數(shù) 122
5.4.3 針對復雜數(shù)據(jù)類型的內(nèi)建函數(shù) 122
5.4.4 高階函數(shù) 124
5.5 常用的DataFrame 操作和Spark SQL 操作 127
5.5.1 聯(lián)合 130
5.5.2 連接 130
5.5.3 窗口 131
5.5.4 修改 134
5.6 小結(jié) 137
第6 章 Spark SQL 與Dataset 138
6.1 Java 與Scala 共用一套API 138
6.2 操作Dataset 140
6.2.1 創(chuàng)建示例數(shù)據(jù) 141
6.2.2 轉(zhuǎn)化示例數(shù)據(jù) 142
6.3 Dataset 與DataFrame 的內(nèi)存管理 147
6.4 Dataset 編碼器 147
6.4.1 Spark 內(nèi)部格式與Java 對象格式 148
6.4.2 序列化與反序列化 148
6.5 使用Dataset 的開銷 149
6.6 小結(jié) 151
第7 章 Spark 應用的優(yōu)化與調(diào)優(yōu) 152
7.1 為效率而優(yōu)化與調(diào)優(yōu) 152
7.1.1 查看與設置Spark 配置 152
7.1.2 為大型作業(yè)擴展Spark 155
7.2 數(shù)據(jù)的緩存與持久化 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 小結(jié) 180
第8 章 結(jié)構化流處理 181
8.1 Spark 流處理引擎的演進過程 181
8.1.1 以微型批模擬的流處理 182
8.1.2 從DStream 獲取的經(jīng)驗教訓 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 監(jiān)控活躍的查詢 194
8.4 流式數(shù)據(jù)源與數(shù)據(jù)池 196
8.4.1 文件 197
8.4.2 Kafka 199
8.4.3 自定義流式數(shù)據(jù)源與數(shù)據(jù)池 200
8.5 數(shù)據(jù)轉(zhuǎn)化 204
8.5.1 增量執(zhí)行與流處理狀態(tài) 204
8.5.2 無狀態(tài)轉(zhuǎn)化操作 204
8.5.3 有狀態(tài)轉(zhuǎn)化操作 205
8.6 有狀態(tài)的流式聚合 207
8.6.1 不根據(jù)時間維度進行聚合 207
8.6.2 使用事件時間窗口進行聚合 208
8.7 流式連接 214
8.7.1 流與靜態(tài)表連接 214
8.7.2 流與流連接 215
8.8 任意的有狀態(tài)計算 220
8.8.1 用mapGroupsWithState() 為任意有狀態(tài)操作建模 220
8.8.2 用超時管理不活躍的分組 223
8.8.3 用flatMapGroupsWithState() 進行通用操作 226
8.9 性能調(diào)優(yōu) 227
8.10 小結(jié) 229
第9 章 用Apache Spark 構建可靠的數(shù)據(jù)湖 230
9.1 最佳存儲解決方案的重要特點 230
9.2 數(shù)據(jù)庫 231
9.2.1 數(shù)據(jù)庫簡介 231
9.2.2 用Spark 讀寫數(shù)據(jù)庫 232
9.2.3 數(shù)據(jù)庫的不足之處 232
9.3 數(shù)據(jù)湖 233
9.3.1 數(shù)據(jù)湖簡介 233
9.3.2 用Spark 讀寫數(shù)據(jù)湖 233
9.3.3 數(shù)據(jù)湖的不足之處 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 構建湖倉一體的系統(tǒng) 237
9.5.1 為使用Delta Lake 配置Spark 237
9.5.2 把數(shù)據(jù)加載到Delta Lake 表中 238
9.5.3 把數(shù)據(jù)流加載到Delta Lake 表中 240
9.5.4 寫數(shù)據(jù)時強化表結(jié)構約束以防止數(shù)據(jù)損壞 241
9.5.5 修改表結(jié)構以適應數(shù)據(jù)變化 242
9.5.6 轉(zhuǎn)化已有數(shù)據(jù) 242
9.5.7 根據(jù)操作歷史審計數(shù)據(jù)變更 245
9.5.8 用時間旅行功能查詢表以前的快照數(shù)據(jù) 245
9.6 小結(jié) 246
第 10 章 用MLlib 實現(xiàn)機器學習 247
10.1 什么是機器學習 247
10.1.1 監(jiān)督學習 248
10.1.2 無監(jiān)督學習 249
10.1.3 為什么將Spark 用于機器學習 250
10.2 設計機器學習流水線 251
10.2.1 接入并探索數(shù)據(jù) 251
10.2.2 創(chuàng)建訓練集與測試集 252
10.2.3 為轉(zhuǎn)化器準備特征 254
10.2.4 理解線性回歸 255
10.2.5 用預估器構建模型 256
10.2.6 創(chuàng)建流水線 257
10.2.7 評估模型 262
10.2.8 保存和加載模型 266
10.3 超參數(shù)調(diào)優(yōu) 266
10.3.1 基于樹的模型 267
10.3.2 k 折交叉驗證 274
10.3.3 優(yōu)化流水線 277
10.4 小結(jié) 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 用于分布式超參數(shù)調(diào)優(yōu) 293
11.4 小結(jié) 295
第 12 章 尾聲:Apache Spark 3.0 296
12.1 Spark 內(nèi)核與Spark SQL 296
12.1.1 動態(tài)分區(qū)裁剪 296
12.1.2 自適應查詢執(zhí)行 298
12.1.3 SQL 連接提示 301
12.1.4 Catalog 插件API 與DataSourceV2 302
12.1.5 可感知加速器的調(diào)度器 303
12.2 Structured Streaming 304
12.3 PySpark、Pandas UDF 和Pandas 函數(shù)API 306
12.3.1 重新設計的帶有Python 類型提示的Pandas UDF 306
12.3.2 Pandas UDF 中的迭代器支持 307
12.3.3 新的Pandas 函數(shù)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 小結(jié) 311
作者簡介 313
封面簡介 313

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號