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

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

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

定 價(jià):¥119.80

作 者: [美] 朱爾斯·S.達(dá)米吉,[美] 布魯克·韋尼希,[印] 泰瑟加塔·達(dá)斯,[美] 丹尼·李 著,王道遠(yuǎn) 譯
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115576019 出版時(shí)間: 2021-11-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 314 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

譯者序 xiii
對(duì)本書的贊譽(yù) xv
序 .xvii
前言 xix
第 1章 Apache Spark簡(jiǎn)介:一站式分析引擎 1
1.1 Spark的起源 1
1.1.1 谷歌的大數(shù)據(jù)和分布式計(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 可擴(kuò)展 5
1.3 一站式數(shù)據(jù)分析 5
1.3.1 由Spark組件組成的一站式軟件棧 6
1.3.2 Spark的分布式執(zhí)行 9
1.4 開發(fā)者體驗(yàn) 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 應(yīng)用的相關(guān)概念 22
2.3.1 Spark 應(yīng)用與SparkSession 22
2.3.2 Spark 作業(yè) 23
2.3.3 Spark 執(zhí)行階段 23
2.3.4 Spark 任務(wù) 24
2.4 轉(zhuǎn)化操作、行動(dòng)操作以及惰性求值 24
2.5 Spark UI 26
2.6 第 一個(gè)獨(dú)立應(yīng)用 29
2.6.1 統(tǒng)計(jì)M&M 巧克力豆 29
2.6.2 用Scala 構(gòu)建獨(dú)立應(yīng)用 34
2.7 小結(jié) 36
第3 章 Apache Spark 的結(jié)構(gòu)化數(shù)據(jù)API 37
3.1 RDD 的背后是什么 37
3.2 Spark 支持結(jié)構(gòu)化數(shù)據(jù) 38
3.3 DataFrame API 41
3.3.1 Spark 的基本數(shù)據(jù)類型 41
3.3.2 Spark 中結(jié)構(gòu)化的復(fù)雜數(shù)據(jù)類型 42
3.3.3 表結(jié)構(gòu)與DataFrame 43
3.3.4 列與表達(dá)式 47
3.3.5 行 49
3.3.6 常見的DataFrame 操作 50
3.3.7 完整的DataFrame 示例 59
3.4 Dataset API 60
3.4.1 有類型對(duì)象、無(wú)類型對(duì)象,以及普通行 61
3.4.2 創(chuàng)建Dataset 62
3.4.3 Dataset 操作 63
3.4.4 完整的Dataset 示例 65
3.5 對(duì)比DataFrame 和Dataset 65
3.6 Spark SQL 及其底層引擎 66
3.7 小結(jié) 71
第4 章 Spark SQL 與DataFrame:內(nèi)建數(shù)據(jù)源概覽 73
4.1 在Spark 應(yīng)用中使用Spark SQL 74
4.2 SQL 表和視圖 79
4.2.1 有管理表和無(wú)管理表 79
4.2.2 創(chuàng)建SQL 數(shù)據(jù)庫(kù)和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 二進(jìn)制文件 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ù)庫(kù) 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 針對(duì)復(fù)雜數(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 對(duì)象格式 148
6.4.2 序列化與反序列化 148
6.5 使用Dataset 的開銷 149
6.6 小結(jié) 151
第7 章 Spark 應(yīng)用的優(yōu)化與調(diào)優(yōu) 152
7.1 為效率而優(yōu)化與調(diào)優(yōu) 152
7.1.1 查看與設(shè)置Spark 配置 152
7.1.2 為大型作業(yè)擴(kuò)展Spark 155
7.2 數(shù)據(jù)的緩存與持久化 160
7.2.1 DataFrame.cache() 161
7.2.2 DataFrame.persist() 162
7.2.3 什么時(shí)候應(yīng)該緩存和持久化 164
7.2.4 什么時(shí)候不應(yīng)該緩存和持久化 164
7.3 Spark 的各種連接算法 164
7.3.1 廣播哈希連接 165
7.3.2 混洗排序合并連接 166
7.4 查看Spark UI 173
7.5 小結(jié) 180
第8 章 結(jié)構(gòu)化流處理 181
8.1 Spark 流處理引擎的演進(jìn)過(guò)程 181
8.1.1 以微型批模擬的流處理 182
8.1.2 從DStream 獲取的經(jīng)驗(yàn)教訓(xùn) 183
8.1.3 Structured Streaming 的設(shè)計(jì)哲學(xué) 183
8.2 Structured Streaming 的編程模型 184
8.3 Structured Streaming 查詢 186
8.3.1 五步定義流式查詢 186
8.3.2 探究活躍的流式查詢 191
8.3.3 失敗恢復(fù)與“精確一次”語(yǔ)義 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 無(wú)狀態(tài)轉(zhuǎn)化操作 204
8.5.3 有狀態(tài)轉(zhuǎn)化操作 205
8.6 有狀態(tài)的流式聚合 207
8.6.1 不根據(jù)時(shí)間維度進(jìn)行聚合 207
8.6.2 使用事件時(shí)間窗口進(jìn)行聚合 208
8.7 流式連接 214
8.7.1 流與靜態(tài)表連接 214
8.7.2 流與流連接 215
8.8 任意的有狀態(tài)計(jì)算 220
8.8.1 用mapGroupsWithState() 為任意有狀態(tài)操作建模 220
8.8.2 用超時(shí)管理不活躍的分組 223
8.8.3 用flatMapGroupsWithState() 進(jìn)行通用操作 226
8.9 性能調(diào)優(yōu) 227
8.10 小結(jié) 229
第9 章 用Apache Spark 構(gòu)建可靠的數(shù)據(jù)湖 230
9.1 最佳存儲(chǔ)解決方案的重要特點(diǎn) 230
9.2 數(shù)據(jù)庫(kù) 231
9.2.1 數(shù)據(jù)庫(kù)簡(jiǎn)介 231
9.2.2 用Spark 讀寫數(shù)據(jù)庫(kù) 232
9.2.3 數(shù)據(jù)庫(kù)的不足之處 232
9.3 數(shù)據(jù)湖 233
9.3.1 數(shù)據(jù)湖簡(jiǎn)介 233
9.3.2 用Spark 讀寫數(shù)據(jù)湖 233
9.3.3 數(shù)據(jù)湖的不足之處 234
9.4 湖倉(cāng)一體:下一代存儲(chǔ)解決方案 235
9.4.1 Apache Hudi 236
9.4.2 Apache Iceberg 236
9.4.3 Delta Lake 236
9.5 用Spark 與Delta Lake 構(gòu)建湖倉(cāng)一體的系統(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ù)時(shí)強(qiáng)化表結(jié)構(gòu)約束以防止數(shù)據(jù)損壞 241
9.5.5 修改表結(jié)構(gòu)以適應(yīng)數(shù)據(jù)變化 242
9.5.6 轉(zhuǎn)化已有數(shù)據(jù) 242
9.5.7 根據(jù)操作歷史審計(jì)數(shù)據(jù)變更 245
9.5.8 用時(shí)間旅行功能查詢表以前的快照數(shù)據(jù) 245
9.6 小結(jié) 246
第 10 章 用MLlib 實(shí)現(xiàn)機(jī)器學(xué)習(xí) 247
10.1 什么是機(jī)器學(xué)習(xí) 247
10.1.1 監(jiān)督學(xué)習(xí) 248
10.1.2 無(wú)監(jiān)督學(xué)習(xí) 249
10.1.3 為什么將Spark 用于機(jī)器學(xué)習(xí) 250
10.2 設(shè)計(jì)機(jī)器學(xué)習(xí)流水線 251
10.2.1 接入并探索數(shù)據(jù) 251
10.2.2 創(chuàng)建訓(xùn)練集與測(cè)試集 252
10.2.3 為轉(zhuǎn)化器準(zhǔn)備特征 254
10.2.4 理解線性回歸 255
10.2.5 用預(yù)估器構(gòu)建模型 256
10.2.6 創(chuàng)建流水線 257
10.2.7 評(píng)估模型 262
10.2.8 保存和加載模型 266
10.3 超參數(shù)調(diào)優(yōu) 266
10.3.1 基于樹的模型 267
10.3.2 k 折交叉驗(yàn)證 274
10.3.3 優(yōu)化流水線 277
10.4 小結(jié) 279
第 11 章 用Apache Spark管理、部署與伸縮機(jī)器學(xué)習(xí)流水線 280
11.1 模型管理 280
11.2 用MLlib 部署模型所用的選項(xiàng) 286
11.2.1 批處理 287
11.2.2 流處理 289
11.2.3 導(dǎo)出模型用于實(shí)時(shí)預(yù)測(cè)的模式 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 動(dòng)態(tài)分區(qū)裁剪 296
12.1.2 自適應(yīng)查詢執(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 重新設(shè)計(jì)的帶有Python 類型提示的Pandas UDF 306
12.3.2 Pandas UDF 中的迭代器支持 307
12.3.3 新的Pandas 函數(shù)API 307
12.4 有改動(dòng)的功能 308
12.4.1 支持的與不推薦使用的編程語(yǔ)言 309
12.4.2 DataFrame API 和Dataset API 的改動(dòng) 309
12.4.3 DataFrame 與SQL 的explain 命令 309
12.5 小結(jié) 311
作者簡(jiǎn)介 313
封面簡(jiǎn)介 313

本目錄推薦

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