Spark編程基礎 (Python版 第2版 附微課視頻)

林子雨

  • 出版商: 人民郵電
  • 出版日期: 2024-08-01
  • 定價: $390
  • 售價: 8.5$332
  • 語言: 簡體中文
  • 頁數: 271
  • ISBN: 7115644039
  • ISBN-13: 9787115644039
  • 相關分類: Spark
  • 下單後立即進貨 (約4週~6週)

  • Spark編程基礎 (Python版 第2版 附微課視頻)-preview-1
  • Spark編程基礎 (Python版 第2版 附微課視頻)-preview-2
Spark編程基礎 (Python版 第2版 附微課視頻)-preview-1

相關主題

商品描述

本書以Python作為開發Spark應用程序的編程語言,系統介紹了Spark編程的基礎知識。全書共9章,內容包括大數據技術概述、Spark的設計與運行原理、大數據實驗環境搭建、Spark環境搭建和使用方法、RDD編程、Spark SQL、Spark Streaming、Structured Streaming和Spark MLlib等。本書安排了入門級的編程實踐內容,以助讀者更好地學習和掌握Spark編程方法。本書免費提供全套在線教學資源,包括PPT課件、習題答案、源代碼、數據集、微課視頻、上機實驗指南等。

本書可以作為高等院校電腦、軟件工程、數據科學與大數據技術等專業的進階級大數據課程教材,用於Spark編程實踐教學,也可以供相關技術人員參考。

作者簡介

林子雨(1978-),男,博士(毕业于北京大学),国内高校知名大数据教师,厦门大学计算机科学系副教授,厦门大学信息学院实验教学中心主任,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员,中国高校首个“数字教师”提出者和建设者。厦门大学2013年度、2017年度和2020年度奖教金获得者,获评“厦门大学2019年度本科教学示范岗”,入选“2021年高校计算机专业优秀教师奖励计划”。2013年开始在厦门大学开设大数据课程,建设了国内高校首个大数据课程公共服务平台,平台累计网络访问量超过1500万次,成为全国高校大数据教学知名品牌,并荣获“2018年福建省教学成果二等奖”和“2018年厦门大学教学成果特等奖”,主持的课程《大数据技术原理与应用》获评“2018年国家精品在线开放课程”、“2020年国家级线上一流本科课程”和“2021年福建省线上线下混合一流本科课程”,主持的课程《Spark编程基础》获评“2020年福建省线上一流本科课程”。

目錄大綱

目錄

第1章 大數據技術概述 1

1.1 大數據概念與關鍵技術 1

1.1.1 大數據概念 1

1.1.2 大數據關鍵技術 2

1.2 代表性大數據技術 3

1.2.1 Hadoop 3

1.2.2 Spark 7

1.2.3 Flink 9

1.2.4 Beam 11

1.3 編程語言的選擇 12

1.4 在線資源 13

1.5 本章小結 14

1.6 習題 14

第2章 Spark的設計與運行原理 15

2.1 概述 15

2.2 Spark生態系統 16

2.3 Spark運行架構 18

2.3.1 基本概念 18

2.3.2 架構設計方法 18

2.3.3 Spark運行的基本流程 19

2.3.4 RDD的設計與運行原理 20

2.4 Spark部署方式 29

2.5 本章小結 30

2.6 習題 30

第3章 大數據實驗環境搭建 31

3.1 Linux操作系統的安裝 31

3.1.1 下載安裝文件 31

3.1.2 Linux操作系統的安裝方式 32

3.1.3 虛擬機和Linux操作系統的安裝 33

3.2 Hadoop的安裝 39

3.2.1 Hadoop簡介 39

3.2.2 安裝Hadoop前的準備工作 40

3.2.3 Hadoop的3種安裝模式 42

3.2.4 下載Hadoop安裝文件 42

3.2.5 單機模式配置 43

3.2.6 偽分佈式模式配置 43

3.2.7 分佈式模式配置 47

3.3 MySQL的安裝 57

3.3.1 執行安裝命令 57

3.3.2 啟動MySQL服務 58

3.3.3 進入MySQL Shell界面 58

3.3.4 解決MySQL出現的中文亂碼問題 58

3.4 Kafka的安裝 60

3.4.1 Kafka簡介 60

3.4.2 Kafka的安裝和使用 60

3.5 Anaconda的安裝和使用方法 61

3.6 本章小結 63

實驗1 Linux、Hadoop和MySQL的安裝與使用 64

第4章 Spark環境搭建和使用方法 66

4.1 安裝Spark(Local模式) 66

4.1.1 基礎環境 66

4.1.2 下載安裝文件 67

4.1.3 配置相關文件 67

4.1.4 驗證Spark是否安裝成功 68

4.2 在PySpark中運行代碼 68

4.2.1 pyspark命令 68

4.2.2 啟動PySpark 69

4.3 使用spark-submit命令提交運行程序 70

4.4 Spark集群環境搭建(Standalone模式) 70

4.4.1 集群概況 71

4.4.2 搭建Hadoop集群 71

4.4.3 安裝Anaconda3 71

4.4.4 在集群中安裝Spark 72

4.4.5 配置環境變量 72

4.4.6 Spark的配置 72

4.4.7 啟動Spark集群 73

4.4.8 關閉Spark集群 74

4.5 在集群上運行Spark應用程序 75

4.5.1 啟動Spark集群 75

4.5.2 提交運行程序 75

4.6 Spark on YARN模式 76

4.6.1 概述 76

4.6.2 Spark on YARN模式的部署 77

4.6.3 採用YARN模式運行PySpark 77

4.6.4 通過spark-submit命令提交程序到YARN集群 78

4.6.5 Spark on YARN的兩種部署模式 78

4.7 安裝PySpark類庫 79

4.7.1 類庫與框架的區別 79

4.7.2 PySpark類庫的安裝 80

4.8 開發Spark獨立應用程序 80

4.8.1 編寫程序 80

4.8.2 通過spark-submit運行程序 81

4.9 PyCharm的安裝和使用 81

4.9.1 安裝PyCharm 81

4.9.2 使用PyCharm開發Spark程序 87

4.10 本章小結 89

4.11 習題 89

實驗2 Spark的安裝和使用 89

第5章 RDD編程 91

5.1 RDD編程基礎 91

5.1.1 RDD創建 91

5.1.2 RDD操作 93

5.1.3 持久化 104

5.1.4 分區 105

5.1.5 綜合實例 109

5.2 鍵值對RDD 110

5.2.1 鍵值對RDD的創建 111

5.2.2 常用的鍵值對轉換操作 111

5.2.3 綜合實例 116

5.3 數據讀寫 117

5.3.1 本地文件系統的數據讀寫 117

5.3.2 分佈式文件系統HDFS的數據讀寫 118

5.3.3 讀寫MySQL數據庫 119

5.4 綜合實例 120

5.4.1 求TOP值 120

5.4.2 文件排序 124

5.4.3 二次排序 126

5.5 本章小結 129

5.6 習題 129

實驗3 RDD編程初級實踐 130

第6章 Spark SQL 133

6.1 Spark SQL簡介 133

6.1.1 從Shark說起 133

6.1.2 Spark SQL架構 135

6.1.3 為什麽推出Spark SQL 135

6.1.4 Spark SQL的特點 136

6.1.5 Spark SQL簡單編程實例 136

6.2 結構化數據DataFrame 137

6.2.1 DataFrame概述 137

6.2.2 DataFrame的優點 138

6.3 DataFrame的創建和保存 139

6.3.1 Parquet 139

6.3.2 JSON 139

6.3.3 CSV 140

6.3.4 文本文件 141

6.3.5 序列集合 141

6.4 DataFrame的基本操作 142

6.4.1 DSL語法風格 142

6.4.2 SQL語法風格 146

6.5 從RDD轉換得到DataFrame 148

6.5.1 利用反射機制推斷RDD模式 148

6.5.2 使用編程方式定義RDD模式 149

6.6 使用Spark SQL讀寫數據庫 150

6.6.1 準備工作 150

6.6.2 讀取MySQL數據庫中的數據 151

6.6.3 向MySQL數據庫寫入數據 152

6.7 PySpark和pandas的整合 153

6.7.1 PySpark和pandas進行整合的可行性 153

6.7.2 pandas數據結構 154

6.7.3 實例1:兩種DataFrame之間的相互轉換 155

6.7.4 實例2:使用自定義聚合函數 156

6.8 綜合實例 157

6.9 本章小結 159

6.10 習題 159

實驗4 Spark SQL編程初級實踐 160

第7章 Spark Streaming 162

7.1 流計算概述 162

7.1.1 靜態數據和流數據 162

7.1.2 批量計算和實時計算 163

7.1.3 什麽是流計算 164

7.1.4 流計算框架 164

7.1.5 流計算處理流程 165

7.2 Spark Streaming概述 166

7.2.1 Spark Streaming設計 167

7.2.2 Spark Streaming與Storm的對比 168

7.2.3 從“Hadoop+Storm”架構轉向Spark架構 168

7.3 DStream操作概述 169

7.3.1 Spark Streaming工作機制 169

7.3.2 編寫Spark Streaming程序的基本步驟 170

7.3.3 創建StreamingContext對象 170

7.4 基本輸入源 170

7.4.1 文件流 170

7.4.2 套接字流 172

7.4.3 RDD隊列流 176

7.5 轉換操作 177

7.5.1 DStream無狀態轉換操作 177

7.5.2 DStream有狀態轉換操作 177

7.6 輸出操作 182

7.6.1 把DStream輸出到文本文件中 182

7.6.2 把DStream寫入關系數據庫中 183

7.7 本章小結 184

7.8 習題 185

實驗5 Spark Streaming編程初級實踐 185

第8章 Structured Streaming 187

8.1 概述 187

8.1.1 基本概念 188

8.1.2 兩種處理模型 189

8.1.3 Structured Streaming和Spark SQL、Spark Streaming的關系 190

8.2 編寫Structured Streaming程序的基本步驟 190

8.2.1 實現步驟 190

8.2.2 測試運行 192

8.3 輸入源 194

8.3.1 File源 194

8.3.2 Kafka源 198

8.3.3 Socket源 200

8.3.4 Rate源 201

8.4 輸出操作 202

8.4.1 啟動流計算 203

8.4.2 輸出模式 203

8.4.3 輸出接收器 204

8.5 容錯處理 205

8.5.1 從檢查點恢復故障 206

8.5.2 故障恢復中的限制 206

8.6 遲到數據處理 206

8.6.1 事件時間 207

8.6.2 遲到數據 207

8.6.3 水印 208

8.6.4 多水印規則 209

8.6.5 處理遲到數據的實例 210

8.7 查詢的管理和監控 213

8.7.1 管理和監控的方法 213

8.7.2 一個監控的實例 213

8.8 本章小結 215

8.9 習題 216

實驗6 Structured Streaming編程實踐 216

第9章 Spark MLlib 218

9.1 基於大數據的機器學習 218

9.2 機器學習庫MLlib概述 219

9.3 基本的數據類型 220

9.3.1 本地向量 220

9.3.2 標註點 221

9.3.3 本地矩陣 222

9.3.4 數據源 223

9.4 基本的統計分析工具 224

9.4.1 相關性 224

9.4.2 假設檢驗 226

9.4.3 匯總統計 227

9.5 機器學習流水線 228

9.5.1 流水線的概念 228

9.5.2 流水線的工作過程 229

9.6 特徵提取、特徵轉換、特徵選擇及局部敏感散列 230

9.6.1 特徵提取 231

9.6.2 特徵轉換 234

9.6.3 特徵選擇 239

9.6.4 局部敏感散列 241

9.7 分類算法 241

9.7.1 邏輯斯諦回歸分類算法 242

9.7.2 決策樹分類算法 246

9.8 聚類算法 250

9.8.1 K-Means聚類算法 250

9.8.2 GMM聚類算法 253

9.9 頻繁模式挖掘算法 256

9.9.1 FP-Growth算法 256

9.9.2 PrefixSpan算法 259

9.10 協同過濾算法 261

9.10.1 協同過濾算法的原理 262

9.10.2 ALS算法 262

9.11 模型選擇 266

9.11.1 模型選擇工具 266

9.11.2 用交叉驗證選擇模型 267

9.12 本章小結 269

9.13 習題 270

實驗7 Spark MLlib編程初級實踐 270

參考文獻 272