Spark實戰(第2版)

Spark實戰(第2版)

《Spark實戰(第2版)》是2022年清華大學出版社出版的圖書,作者是[法]吉恩·喬治·佩林(Jean-Georges Perrin) ,譯者是林賜。

基本介紹

  • 中文名:Spark實戰(第2版)
  • 作者:[法]吉恩·喬治·佩林(Jean-Georges Perrin)
  • 原作品:Spark in Action, Second Edition
  • 譯者:林賜
  • 出版社:清華大學出版社
  • 出版時間:2022年3月
  • 頁數:392 頁
  • 定價:99.8 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787302596783
圖書目錄,作者簡介,

圖書目錄

第Ⅰ部分 通過示例講解理論
第1章 Spark介紹 3
1.1 Spark簡介及其作用 4
1.1.1 什麼是Spark 4
1.1.2 Spark神力的四個支柱 5
1.2 如何使用Spark 7
1.2.1 數據處理/工程場景中的Spark 7
1.2.2 數據科學場景中的Spark 8
1.3 使用Spark,能做些什麼 9
1.3.1 使用Spark預測NC餐飲行業的餐館質量 10
1.3.2 Spark允許Lumeris進行快速數據傳輸 10
1.3.3 Spark分析CERN的設備日誌 10
1.3.4 其他用例 11
1.4 為什麼你應該喜歡數據幀 11
1.4.1 從Java角度了解數據幀 11
1.4.2 從RDBMS角度理解數據幀 12
1.4.3 數據幀的圖形表示 12
1.5 第一個示例 13
1.5.1 推薦軟體 13
1.5.2 下載代碼 13
1.5.3 運行第一個應用程式 14
1.5.4 第一份代碼 15
1.6 小結 16
第2章 架構和流程 17
2.1 構建思維模型 17
2.2 使用Java代碼構建思維模型 18
2.3 運行應用程式 21
2.3.1 連線到主機 21
2.3.2 載入或提取CSV檔案 22
2.3.3 轉換數據 25
2.3.4 將數據幀中完成的工作保存到資料庫中 26
2.4 小結 29
第3章 數據幀的重要作用 31
3.1 數據幀在Spark中的基本作用 32
3.1.1 數據幀的組織 32
3.1.2 不變性並非貶低之詞 33
3.2 通過示例演示數據幀的使用 35
3.2.1 簡單提取CSV後的數據幀 36
3.2.2 數據存儲在分區中 40
3.2.3 挖掘模式 41
3.2.4 提取JSON後的數據幀 43
3.2.5 合併兩個數據幀 48
3.3 數據幀Dataset<Row> 53
3.3.1 重用POJO 53
3.3.2 創建字元串數據集 54
3.3.3 來迴轉換 55
3.4 數據幀的祖先:RDD 60
3.5 小結 61
第4章 Spark的“惰性”本質 63
4.1 現實中懶惰但高效的示例 64
4.2 懶惰但高效的Spark示例 65
4.2.1 查看數據轉換和數據操作的結果 65
4.2.2 數據轉換的過程,逐步進行 66
4.2.3 數據轉換/操作流程的後台代碼 68
4.2.4 在182毫秒內創建700多萬個數據點的奧秘 71
4.2.5 操作計時背後的奧秘 72
4.3 與RDBMS和傳統應用程式進行比較 76
4.3.1 使用青少年生育率數據集 76
4.3.2 分析傳統應用程式和Spark應用程式之間的區別 77
4.4 對於以數據為中心的應用程式而言,Spark的表現出乎意料 78
4.5 Catalyst是應用程式的催化器 79
4.6 小結 81
第5章 構建一個用於部署的簡單應用程式 83
5.1 無數據提取的示例 83
5.1.1 計算π 84
5.1.2 計算近似值π的代碼 85
5.1.3 Java中的lambda函式是什麼 90
5.1.4 使用lambda函式估算π 92
5.2 與Spark互動 93
5.2.1 本地模式 94
5.2.2 集群模式 95
5.2.3 Scala和Python的互動模式 97
5.3 小結 102
第6章 部署簡單的應用程式 105
6.1 示例之外:組件的作用 106
6.1.1 快速瀏覽組件及其之間的互動 107
6.1.2 Spark架構的故障排除技巧 110
6.1.3 知識拓展 110
6.2 構建集群 111
6.2.1 如何構建集群 111
6.2.2 設定環境 112
6.3 構建應用程式,在集群上運行 115
6.3.1 構建應用程式的超級JAR 115
6.3.2 使用Git和Maven構建應用程式 117
6.4 在集群上運行應用程式 119
6.4.1 提交超級JAR 119
6.4.2 運行應用程式 120
6.4.3 分析Spark的用戶界面 121
6.5 小結 122
第Ⅱ部分 數據提取
第7章 從檔案中提取數據 125
7.1 解析器的常見行為 126
7.2 從CSV中提取數據(比較複雜) 126
7.2.1 預期輸出 128
7.2.2 代碼 128
7.3 使用已知模式提取CSV 129
7.3.1 預期輸出 130
7.3.2 代碼 130
7.4 提取JSON檔案 132
7.4.1 預期輸出 134
7.4.2 代碼 134
7.5 提取多行JSON檔案 135
7.5.1 預期輸出 137
7.5.2 代碼 137
7.6 提取XML檔案 138
7.6.1 預期輸出 140
7.6.2 代碼 140
7.7 提取文本檔案 142
7.7.1 預期輸出 143
7.7.2 代碼 143
7.8 用於大數據的檔案格式 144
7.8.1 傳統檔案格式的問題 144
7.8.2 Avro是基於模式的序列化格式 145
7.8.3 ORC是一種列式存儲格式 145
7.8.4 Parquet也是一種列式存儲格式 146
7.8.5 比較Avro、ORC和Parquet 146
7.9 提取Avro、ORC和Parquet檔案 146
7.9.1 提取Avro 146
7.9.2 提取ORC 148
7.9.3 提取Parquet 150
7.9.4 用於提取Avro、ORC或Parquet的參考表格 151
7.10 小結 151
第8章 從資料庫中提取數據 153
8.1 從關係資料庫中提取數據 154
8.1.1 資料庫連線備忘錄 154
8.1.2 了解示例中使用的數據 155
8.1.3 預期輸出 156
8.1.4 代碼 157
8.1.5 可替代的代碼 159
8.2 dialect的作用 160
8.2.1 什麼是dialect 160
8.2.2 Spark提供的JDBC dialect 161
8.2.3 構建自定義dialect 161
8.3 高級查詢和提取 163
8.3.1 使用WHERE子句進行過濾 163
8.3.2 在資料庫中連線數據 166
8.3.3 執行數據提取和分區 168
8.3.4 高級功能總結 171
8.4 從Elasticsearch中提取數據 171
8.4.1 數據流 171
8.4.2 Spark提取的NYC餐館數據集 172
8.4.3 從 Elasticsearch中提取NYC餐館數據集的代碼 173
8.5 小結 175
第9章 數據提取進階:尋找數據源與構建自定義數據源 177
9.1 什麼是數據源 179
9.2 直接連線數據源的好處 179
9.2.1 臨時檔案 180
9.2.2 數據質量腳本 181
9.2.3 按需提供數據 181
9.3 查找Spark軟體包中的數據源 181
9.4 構建自己的數據源 181
9.4.1 示例項目的範圍 182
9.4.2 數據源API和選項 183
9.5 幕後工作:構建數據源本身 185
9.6 使用註冊器檔案和廣告器類 186
9.7 理解數據和模式之間的關係 188
9.7.1 數據源構建關係 189
9.7.2 關係內部 191
9.8 使用JavaBean構建模式 194
9.9 使用實用程式構建數據幀的神奇方法 196
9.10 其他類 201
9.11 小結 201
第10章 提取結構化流數據 203
10.1 什麼是流數據 204
10.2 創建首個流數據 205
10.2.1 生成檔案流數據 206
10.2.2 消費記錄 208
10.2.3 獲取記錄,而非數據行 213
10.3 從網路流數據中提取數據 214
10.4 處理多個流數據 216
10.5 區分離散化流數據和結構化流數據 221
10.6 小結 221
第III部分 轉換數據
第11章 使用SQL 225
11.1 使用Spark SQL 225
11.2 本地視圖與全局視圖之間的區別 229
11.3 混合使用數據幀API和Spark SQL 230
11.4 不要刪除數據 233
11.5 進一步了解SQL 235
11.6 小結 235
第12章 轉換數據 237
12.1 數據轉換是什麼 238
12.2 在記錄層面進行數據轉換的過程和示例 238
12.2.1 數據發現,了解數據的複雜性 240
12.2.2 數據映射,繪製過程 241
12.2.3 編寫轉換代碼 244
12.2.4 審查數據轉換,確保質量流程 249
12.2.5 如何排序 251
12.2.6 結束Spark數據轉換的首次演示 251
12.3 連線數據集 251
12.3.1 仔細查看要連線的數據集 252
12.3.2 構建各縣的高等教育機構列表 253
12.3.3 執行連線操作 258
12.4 執行更多的數據轉換 263
12.5 小結 263
第13章 轉換整個文檔 265
13.1 轉換整個文檔及其結構 265
13.1.1 展平JSON文檔 266
13.1.2 構建嵌套文檔,用於數據傳輸和存儲 270
13.2 靜態函式背後的魔力 274
13.3 執行更多的數據轉換 275
13.4 小結 275
第14章 使用自定義函式擴展數據轉換 277
14.1 擴展Apache Spark 278
14.2 註冊和調用UDF 279
14.2.1 在Spark中註冊UDF 281
14.2.2 將UDF與數據幀API結合起來使用 282
14.2.3 使用SQL處理UDF 283
14.2.4 實現UDF 284
14.2.5 編寫服務代碼 285
14.3 使用UDF,確保數據高質量 287
14.4 考慮UDF的約束 289
14.5 小結 289
第15章 聚合數據 291
15.1 使用Spark聚合數據 291
15.1.1 簡單回顧數據聚合 292
15.1.2 使用Spark執行基本的數據聚合 294
15.2 使用實時數據執行數據聚合 296
15.2.1 準備數據集 297
15.2.2 聚合數據,更好地了解學校 301
15.3 使用UDAF構建自定義的聚合操作 306
15.4 小結 311
第IV部分 百尺竿頭,更進一步
第16章 快取和檢查點:增強Spark的性能 315
16.1 使用快取和檢查點可提高性能 315
16.1.1 Spark快取的用途 317
16.1.2 Spark檢查點的妙用 318
16.1.3 使用快取和檢查點 318
16.2 快取實戰 326
16.3 有關性能最佳化的知識拓展 335
16.4 小結 335
第17章 導出數據,構建完整數據管道 337
17.1 導出數據的主要概念 337
17.1.1 使用NASA數據集構建管道 338
17.1.2 將列轉換為日期時間(datetime) 341
17.1.3 將置信度百分比轉換為置信度等級 341
17.1.4 導出數據 342
17.1.5 導出數據:實際發生了什麼 344
17.2 Delta Lake:使用系統核心的資料庫 346
17.2.1 理解需要資料庫的原因 346
17.2.2 在數據管道中使用Delta Lake 347
17.2.3 消費來自Delta Lake的數據 351
17.3 從Spark訪問雲存儲服務 353
17.4 小結 354
第18章 探索部署約束:了解生態系統 355
18.1 使用YARN、Mesos和Kubernetes管理資源 356
18.1.1 使用內置的獨立模式管理資源 356
18.1.2 在Hadoop環境中,使用YARN管理資源 357
18.1.3 Mesos是獨立的資源管理器 358
18.1.4 Kubernetes編排容器 360
18.1.5 選擇合適的資源管理器 360
18.2 與Spark已分享檔案 361
18.2.1 訪問檔案中包含的數據 362
18.2.2 通過分散式檔案系統已分享檔案 362
18.2.3 訪問共享驅動器或檔案伺服器上的檔案 363
18.2.4 使用檔案共享服務分發檔案 364
18.2.5 訪問Spark檔案的其他選項 365
18.2.6 用於與Spark已分享檔案的混合解決方案 365
18.3 確保Spark應用程式的安全 365
18.3.1 保護基礎架構的網路組件 366
18.3.2 保護Spark磁碟的使用 367
18.4 小結 367
附錄部分內容通過封底二維碼下載獲取
附錄A 安裝Eclipse 369
附錄B 安裝Maven 375
附錄C 安裝Git 379
附錄D 下載代碼,啟用Eclipse 381
附錄E 企業數據的歷史 387
附錄F 有關關係資料庫的幫助信息 391
附錄G 靜態函式使數據轉換變得容易 397
附錄H 簡略的Maven備忘單 407
附錄I 數據轉換和數據操作的
參考資料 411
附錄J Scala簡介 421
附錄K 在生產環境中安裝Spark,以及一些提示 423
附錄L 關於數據提取的參考資料 435
附錄M 關於連線的參考資料 447
附錄N 安裝Elasticsearch和示例數據 459
附錄O 生成流數據 465
附錄P 有關流數據的參考資料 469
附錄Q 有關導出數據的參考資料 479
附錄R 遇到困難,尋找幫助 487

作者簡介

Jean-Georges Perrin是-位經驗豐富的數據和軟體架構師。他是法國的第一位IBM Champion,並連續12年獲獎,成為終身IBM Chempion。Jean-Georges Perrin 對軟體工程和數據的各個方面充滿熱情。新項目促使他轉向分散式的數據工程,在此項目中,他在混合雲環境中廣泛使用Apache Spark、Java和其他工具。他很自豪地成為法國第一個公認的IBM Champion,並連續12年獲獎。作為獲獎的數據和軟體工程專家,現在,他在全球範圍內都開展了業務,但重心在他所居住的美國。Jean-Georges是資深的會議演講者和參與者,他以書面或線上媒體的形式發表文章,分享他在IT行業超過25年的經驗。

相關詞條

熱門詞條

聯絡我們