Spark應用開發技術項目教程(Scala版)
李靜、趙慶、曾凡晉、柴旭光、王浩
商品描述
作者簡介
目錄大綱
目錄
項目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.3SparkonYarn模式
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數據挖掘
【任務實現】
【任務總結】
【鞏固練習】
【任務拓展】
參考文獻