《Spark編程基礎(Scala版)》(第2版)(附微課視頻),2022年人民郵電出版社出版的圖書,作者是林子雨、賴永炫、陶繼平。
基本介紹
- 中文名:Spark編程基礎(Scala版)
- 作者:林子雨、賴永炫、陶繼平
- 出版社:人民郵電出版社
- 出版時間:2022年12月
- 開本:16 開
- ISBN:9787115595010
內容簡介,作者簡介,圖書目錄,
內容簡介
本書以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編程實踐