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

林子雨 賴永炫 陶繼平

  • 出版商: 人民郵電
  • 出版日期: 2022-12-01
  • 定價: $390
  • 售價: 7.5$293
  • 語言: 簡體中文
  • 頁數: 278
  • ISBN: 7115595011
  • ISBN-13: 9787115595010
  • 相關分類: JVM 語言Spark
  • 立即出貨 (庫存 < 3)

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

商品描述

本書以Scala作為開發Spark應用程序的編程語言,系統地介紹了Spark編程的基礎知識。全書共9章,內容包括大數據技術概述、Scala語言基礎、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.2 大數據關鍵技術

1.2 代表性大數據技術

1.2.1 Hadoop

1.2.2 Spark

1.2.3 Flink

1.2.4 Beam

1.3 編程語言的選擇

1.3.1 不同編程語言簡介

1.3.2 Spark開發語言對比

1.4 在線資源

1.5 本章小結

1.6 習題

實驗1 Linux系統的安裝和常用命令

第 2章 Scala語言基礎

2.1 Scala語言概述

2.1.1 電腦的緣起

2.1.2 編程範式

2.1.3 Scala簡介

2.1.4 Scala的安裝

2.1.5 HelloWorld

2.2 Scala基礎知識

2.2.1 基本數據類型和變量

2.2.2 輸入/輸出

2.2.3 控制結構

2.2.4 數據結構

2.3 面向對象編程基礎

2.3.1 類

2.3.2 對象

2.3.3 繼承

2.3.4 參數化類型

2.3.5 特質

2.3.6 模式匹配

2.3.7 包

2.4 函數式編程基礎

2.4.1 函數的定義與使用

2.4.2 高階函數

2.4.3 閉包

2.4.4 偏應用函數和Curry化

2.4.5 針對容器的操作

2.4.6 函數式編程實例

2.5 本章小結

2.6 習題

實驗2 Scala編程初級實踐

第3章 Spark的設計與運行原理

3.1 概述

3.2 Spark生態系統

3.3 Spark運行架構

3.3.1 基本概念

3.3.2 架構設計

3.3.3 Spark運行基本流程

3.3.4 RDD的設計與運行原理

3.4 Spark的部署方式

3.5 TensorFlowOnSpark

3.6 本章小結

3.7 習題

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

4.1 安裝Spark

4.1.1 基礎環境

4.1.2 下載安裝文件

4.1.3 配置相關文件

4.1.4 Spark和Hadoop的交互

4.2 在spark-shell中運行代碼

4.2.1 spark-shell命令

4.2.2 啟動spark-shell

4.2.3 Spark UI

4.3 開發Spark獨立應用程序

4.3.1 安裝編譯打包工具

4.3.2 編寫Spark應用程序代碼

4.3.3 編譯打包

4.3.4 通過spark-submit運行程序

4.4 Spark集群環境搭建

4.4.1 集群概況

4.4.2 搭建Hadoop集群

4.4.3 在集群中安裝Spark

4.4.4 配置環境變量

4.4.5 Spark的配置

4.4.6 啟動Spark集群

4.4.7 關閉Spark集群

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

4.5.1 啟動Spark集群

4.5.2 在集群中運行應用程序JAR包

4.5.3在集群中運行spark-shell

4.6 本章小結

4.7 習題

實驗3 Spark和Hadoop的安裝

第5章 RDD編程

5.1 RDD編程基礎

5.1.1 RDD創建

5.1.2 RDD操作

5.1.3 持久化

5.1.4 分區

5.1.5 一個綜合實例

5.2 鍵值對RDD

5.2.1 鍵值對RDD的創建

5.2.2 常用的鍵值對轉換操作

5.2.3 一個綜合實例

5.3 數據讀寫

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

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

5.3.3 讀寫MySQL數據庫

5.4 綜合實例

5.4.1 求TOP值

5.4.2 文件排序

5.4.3 二次排序

5.5 本章小結

實驗4 RDD編程初級實踐

第6章 Spark SQL

6.1 Spark SQL簡介

6.1.1 從Shark說起

6.1.2 Spark SQL架構

6.1.3 為什麽推出Spark SQL

6.1.4 Spark SQL的特點

6.1.5 Spark SQL簡單編程實例

6.2 結構化數據DataFrame

6.2.1 DataFrame概述

6.2.2 DataFrame的優點

6.3 DataFrame的創建和保存

6.3.1 Parquet

6.3.2 JSON

6.3.3 CSV

6.3.4 文本文件

6.3.5 序列集合

6.4 DataFrame的基本操作

6.4.1 DSL語法風格

6.4.2 SQL語法風格

6.5 從RDD轉換得到DataFrame

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

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

6.6 使用Spark SQL讀寫數據庫

6.6.1準備工作

6.6.2讀取MySQL數據庫中的數據

6.6.3向MySQL數據庫寫入數據

6.6.4編寫獨立應用程序訪問MySQL

6.7 DataSet

6.7.1 DataFrame、DataSet和RDD的區別

6.7.2創建DataSet

6.7.3 RDD、DataFrame和DataSet之間的相互轉換

6.7.4 詞頻統計實例

6.8 本章小結

6.9 習題

實驗5 Spark SQL編程初級實踐

第7章 Spark Streaming

7.1 流計算概述

7.1.1 靜態數據和流數據

7.1.2 批量計算和實時計算

7.1.3 流計算概念

7.1.4 流計算框架

7.1.5 流計算處理流程

7.2 Spark Streaming

7.2.1 Spark Streaming設計

7.2.2 Spark Streaming與Storm的對比

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

7.3 DStream操作概述

7.3.1 Spark Streaming工作機制

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

7.3.3 創建StreamingContext對象

7.4 基本輸入源

7.4.1 文件流

7.4.2 套接字流

7.4.3 RDD隊列流

7.5 高級數據源

7.5.1 Kafka簡介

7.5.2 Kafka準備工作

7.5.3 Spark準備工作

7.5.4 編寫Spark Streaming程序使用Kafka數據源

7.6 轉換操作

7.6.1 DStream無狀態轉換操作

7.6.2 DStream有狀態轉換操作

7.7 輸出操作

7.7.1 把DStream輸出到文本文件中

7.7.2 把DStream寫入到關系數據庫中

7.8 本章小結

7.9 習題

實驗6 Spark Streaming編程初級實踐

第8章 Structured Streaming

8.1概述

8.1.1 Spark Streaming的不足之處

8.1.2 Structured Streaming的設計理念

8.1.3 Structured Streaming的處理模型

8.1.4 Structured Streaming和Spark SQL、Spark Streaming關系

8.1.5 Structured Streaming與其他流處理技術的對比

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

8.2.1實現步驟

8.2.2測試運行

8.3輸入源

8.3.1File源

8.3.2Kafka源

8.3.3Socket源

8.3.4Rate源

8.4輸出操作

8.4.1啟動流計算

8.4.2輸出模式

8.4.3輸出接收器

8.5容錯處理

8.5.1從檢查點恢復故障

8.5.2故障恢復中的限制

8.6遲到數據處理

8.6.1事件時間

8.6.2遲到數據

8.6.3水印

8.6.4多水印規則

8.6.5處理遲到數據的例子

8.7查詢的管理和監控

8.7.1管理和監控的方法

8.7.2一個監控的實例

8.8本章小結

8.9習題

實驗7 Structured Streaming初級編程實踐

第9章 Spark MLlib

9.1 基於大數據的機器學習

9.2 機器學習庫MLlib概述

9.3 基本數據類型

9.3.1 本地向量

9.3.2 標註點

9.3.3 本地矩陣

9.3.4 數據源

9.4 基本統計工具

9.4.1 相關性

9.4.2 假設檢驗

9.4.3 匯總統計

9.5 機器學習流水線

9.5.1 流水線的概念

9.5.2 流水線工作過程

9.6 特徵提取、轉換和選擇

9.6.1 特徵提取

9.6.2 特徵轉換

9.6.3 特徵選擇

9.6.4 局部敏感哈希

9.7 分類算法

9.7.1 邏輯斯蒂回歸分類器

9.7.2 決策樹分類器

9.8 聚類算法

9.8.1 K-Means聚類算法

9.8.2 GMM聚類算法

9.9 頻繁模式挖掘算法

9.9.1 FP-Growth算法

9.9.2 PrefixSpan算法

9.10 協同過濾算法

9.10.1 推薦算法的原理

9.10.2 ALS算法

9.11 模型選擇和超參數調整

9.11.1 模型選擇工具

9.11.2 用交叉驗證選擇模型

9.12 本章小結

9.13 習題

實驗7 Spark機器學習庫MLlib編程實踐