Spark應用開發技術項目教程(Scala版)

李靜、趙慶、曾凡晉、柴旭光、王浩

  • 出版商: 清華大學
  • 出版日期: 2025-10-01
  • 售價: $354
  • 語言: 簡體中文
  • ISBN: 7302698112
  • ISBN-13: 9787302698111
  • 相關分類: Spark
  • 下單後立即進貨 (約4週~6週)

  • Spark應用開發技術項目教程(Scala版)-preview-1
  • Spark應用開發技術項目教程(Scala版)-preview-2
  • Spark應用開發技術項目教程(Scala版)-preview-3
  • Spark應用開發技術項目教程(Scala版)-preview-4
Spark應用開發技術項目教程(Scala版)-preview-1

商品描述

"本書是一本針對Spark大數據分析平臺的應用開發實踐指南,旨在為讀者提供一套完整的學習和實戰路徑,從而深入理解和掌握Spark的各個核心模塊及其在實際項目中的應用。本書通過詳細的項目導向學習方式,結合實際任務和案例分析,引導讀者逐步掌握Spark應用開發的技術細節。 本書共8個項目,涵蓋Spark的各個重要組件,包括認識Spark、Scala語法應用、Spark Core數據分析、Spark SQL結構化數據處理、Spark流式數據處理、Spark結構化流式處理、Spark機器學習應用、社交軟件運營數據分析,逐步提升讀者的技術水平和應用能力。每個項目由多個任務組成,通過任務提出、任務分析、知識準備、任務實現、任務總結、鞏固練習和任務拓展的模塊化結構,幫助讀者系統化地掌握Spark應用開發的技術框架和核心概念。 本書適合作為高等學校本科數據科學與大數據技術專業教材,也適合作為高職本科、高職專科相關課程教材,還可以作為Spark開發初學者和中級開發人員的參考用書,幫助讀者快速掌握Spark編程技術,提升在大數據分析和機器學習領域的實際能力。 "

作者簡介

李靜,中山大學通信與信息系統專業碩士研究生,5年世界500強企業工作經歷,截至目前,從事大數據相關課程教學工作8年,擁有豐富的教學經驗,《Hadoop大數據平臺搭建》省級精品在線課主持人;指導學生參加全國職業院校技能大賽“大數據技術與應用”賽項國賽三等獎;參與編寫“大數據運維1+X等級證書(中級)教材,在大數據等級證書師資培訓中擔任主講教師;在國內外核心期刊發表論文4篇,軟件著作權5項。

目錄大綱

目錄

項目1認識Spark

任務1搭建Spark環境

【任務提出】

【任務分析】

【知識準備】

1.1認識Spark

1.1.1Spark內置模塊

1.1.2Spark運行模式

1.2Spark安裝

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務2Spark程序運行

【任務提出】

【任務分析】

【知識準備】

1.3Spark集群架構及運行原理

1.4Spark作業運行流程

1.4.1Spark本地模式

1.4.2Spark獨立模式

1.4.3SparkonYarn模式

1.5Spark RDD及核心原理

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

項目2Scala語法應用

任務1安裝Scala

【任務提出】

【任務分析】

【知識準備】

2.1了解Scala

2.2編程範式

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務2管理購物清單

【任務提出】

【任務分析】

【知識準備】

2.3基本語法

2.3.1基本數據類型

2.3.2變量和常量

2.3.3運算符

2.4集合類型之數組

2.5程序結構控制

2.5.1判斷結構

2.5.2循環結構

2.6函數

2.6.1匿名函數

2.6.2高階函數

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務3分析圖書館借閱記錄

【任務提出】

【任務分析】

【知識準備】

2.7其他集合類型

2.7.1列表

2.7.2集合

2.7.3映射

2.7.4元組

2.8集合類函數

2.9面向對象編程基礎

2.9.1類和對象

2.9.2樣例類

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

項目3Spark Core數據分析

任務1單詞計數

【任務提出】

【任務分析】

【知識準備】

3.1下載並安裝IntelliJ IDEA

3.1.1下載及安裝

3.1.2安裝Scala插件

3.2部署Spark編程環境

3.3程序打包並在集群運行

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務2統計交易額

【任務提出】

【任務分析】

【知識準備】

3.4創建RDD

3.4.1在驅動程序中並行化現有集合創建RDD

3.4.2引用外部存儲系統中的數據集創建RDD

3.5RDD的常用轉換操作

3.5.1使用map操作轉換RDD

3.5.2使用filter操作過濾RDD

3.5.3使用flatMap操作轉換RDD

3.5.4使用distinct操作對RDD去重

3.5.5使用repartition操作重新設置RDD分區數

3.5.6使用groupBy操作對RDD分組

3.5.7使用sortBy操作對RDD元素排序

3.6RDD的常用行動操作

3.6.1使用reduce操作對RDD元素進行聚合

3.6.2使用collect操作獲取RDD元素集合

3.6.3使用count操作獲取RDD元素個數

3.6.4使用first操作獲取RDD第一個元素

3.6.5使用take操作獲取RDD前n個元素

3.6.6使用foreach操作計算RDD每個元素

3.7集合類操作

3.7.1使用unoin操作合並多個RDD

3.7.2使用intersection操作計算交集

3.7.3使用substract操作計算差集

3.7.4使用cartesian操作計算笛卡兒積

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務3商品交易量分析

【任務提出】

【任務分析】

【知識準備】

3.8鍵值對RDD的創建

3.9鍵值對RDD的常用操作

3.9.1使用join操作連接鍵值對RDD

3.9.2使用groupByKey操作對鍵值對RDD進行分組

3.9.3使用reduceByKey操作對鍵值對RDD進行聚合

3.9.4使用sortByKey操作對鍵值對RDD進行排序

3.9.5使用countByKey操作按鍵計算鍵值對RDD個數

3.10RDD的輸出操作

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務4分區保存銷售數據

【任務提出】

【任務分析】

【知識準備】

3.11自定義分區器

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

項目4Spark SQL結構化數據處理

任務1導入電影評分數據

【任務提出】

【任務分析】

【知識準備】

4.1了解Spark SQL

4.1.1Spark SQL運行架構

4.1.2部署Spark SQL編程環境

4.2創建DataFrame對象

4.2.1通過結構化文件創建DataFrame

4.2.2通過外部數據庫創建DataFrame

4.2.3通過RDD創建DataFrame

4.3查看及保存DataFrame對象

4.3.1查看DataFrame對象

4.3.2DataFrame對象的Save操作

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務2分析電影評分數據

【任務提出】

【任務分析】

【知識準備】

4.4DataFrame對象的查詢操作

4.4.1條件查詢

4.4.2查詢指定字段的數據信息

4.4.3查詢前n條記錄

4.4.4排序查詢

4.4.5分組查詢

4.4.6連接查詢

4.5DataFrame對象的其他輸出操作

4.6Spark SQL中常用的內置函數

4.6.1字符串函數

4.6.2類型轉換函數

4.6.3條件判斷函數

4.6.4日期函數

4.6.5窗口函數

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務3保存分析結果到MySQL

【任務提出】

【任務分析】

【知識準備】

4.7Spark SQL與MySQL的交互

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務4保存分析結果到Hive

【任務提出】

【任務分析】

【知識準備】

4.8Spark SQL與Hive的交互

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

項目5Spark流式數據處理

任務1實時訂單數據采集

【任務提出】

【任務分析】

【知識準備】

5.1了解Spark Streaming

5.1.1Spark Streaming運行原理

5.1.2認識DStream

5.2創建DStream

5.2.1Spark Streaming編程模型

5.2.2Socket源創建DStream

5.2.3文件流創建DStream

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務2實時訂單金額分析

【任務提出】

【任務分析】

【知識準備】

5.3DStream轉換操作

5.3.1無狀態轉換操作

5.3.2有狀態操作

5.4DStream窗口操作

5.5DStream輸出操作

5.6與Spark SQL的聯合使用

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務3消費Kafka訂單數據

【任務提出】

【任務分析】

【知識準備】

5.7Spark Streaming消費Kafka消息

5.7.1Kafka部署及測試

5.7.2編程環境部署

5.7.3消費Kafka消息

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

項目6Spark結構化流式處理

任務1實時溫度監測

【任務提出】

【任務分析】

【知識準備】

6.1概述

6.1.1入門案例: 單詞計數

6.1.2編程模型

6.2基於Datasets和DataFrames的操作

6.2.1創建輸入源

6.2.2輸入流的操作

6.2.3輸出操作

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務2公共交通實時監控

【任務提出】

【任務分析】

【知識準備】

6.3基於事件時間的窗口處理

6.3.1處理延遲數據和水印

6.3.2時間窗口的類型

6.3.3多水印規則

6.4觸發器

6.5查詢的管理和監控

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

項目7Spark機器學習應用

任務1產品表特征值處理

【任務提出】

【任務分析】

【知識準備】

7.1了解Spark MLlib

7.2特征工程

7.2.1基本數據類型

7.2.2特征提取

7.2.3特征轉換

7.2.4特征選擇

7.2.5流水線

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務2產品類別預測

【任務提出】

【任務分析】

【知識準備】

7.3分類和回歸算法

7.3.1樸素貝葉斯

7.3.2邏輯回歸

7.3.3決策樹

7.3.4支持向量機SVM

7.4聚類算法

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

任務3電商推薦系統實現

【任務提出】

【任務分析】

【知識準備】

7.5推薦算法

7.5.1基於用戶相似度的推薦算法

7.5.2基於物品相似度的推薦算法

7.5.3ALS算法

7.5.4基於內容的推薦算法

7.6模型評估

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

項目8社交軟件運營數據分析

【任務提出】

【任務分析】

【知識準備】

8.1通用的數據分層設計

8.2關鍵任務解析

8.2.1數據入倉

8.2.2數據探索與清洗

8.2.3數據分析

8.2.4數據挖掘

【任務實現】

【任務總結】

【鞏固練習】

【任務拓展】

參考文獻