注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計Spark原理深入與編程實戰(zhàn)(微課視頻版)

Spark原理深入與編程實戰(zhàn)(微課視頻版)

Spark原理深入與編程實戰(zhàn)(微課視頻版)

定 價:¥189.00

作 者: 辛立偉、張帆、張會娟
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787302628866 出版時間: 2023-07-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內容簡介

  本書系統(tǒng)講述Apache Spark大數(shù)據計算平臺的原理,以及如果將Apache Spark應用于大數(shù)據的實時流處理、批處理、圖計算等各個場景。通過原理深入學習和實踐示例、案例的學習應用,使讀者了解并掌握Apache Spark大數(shù)據計算平臺的基本原理和技能,接近理論與實踐的距離。 全書共分為13章,主要內容包括Spark架構原理與集群搭建、開發(fā)和部署Spark應用程序、Spark核心編程、Spark SQL、Spark SQL高級分析、Spark Streaming流處理、Spark結構化流、Spark結構化流高級處理、下一代Spark圖處理庫GraphFrames、下一代大數(shù)據技術(Delta Lake數(shù)據湖、Iceberg數(shù)據湖和Hudi數(shù)據湖)、Spark大數(shù)據處理綜合案例。本書源碼全部在Apache Spark 3.1.2上調試成功,所有示例和案例均基于Scala語言。 為降低讀者學習大數(shù)據技術的門檻,本書除了提供了豐富的上機實踐操作和范例程序詳細講解之外,本書作者還為購買和使用本書的讀者提供了搭建好的Hadoop、Hive數(shù)倉和Spark大數(shù)據開發(fā)和學習環(huán)境。讀者既可以參照本書的講解自行搭建Hadoop和Spark環(huán)境,也可直接使用作者提供的開始和學習環(huán)境,快速開始大數(shù)據和Spark、數(shù)據湖的學習。 本書系統(tǒng)講解了Apache Spark大數(shù)據計算平臺的原理和流、批處理的開發(fā)實踐,內容全面、實例豐富、可操作性強,做到了理論與實踐相結合。本書適合大數(shù)據學習愛好者、想要入門Apache Spark的讀者作為入門和提高的技術參考書,也適合用作大中專院校大數(shù)據專業(yè)相關的學生和老師的教材或教學參考書。

作者簡介

  辛立偉,一個在IT領域摸爬滾打二十多年的老程序員、技術培訓師、技術作者。橫跨Java、數(shù)據庫、大數(shù)據開發(fā)與分析、人工智能等多個領域,參與多個IT項目的架構設計與開發(fā)。長期堅持撰寫技術博客,曾在多個大學講授Java開發(fā)、數(shù)據庫和大數(shù)據技術課程,曾擔任中國石油大學(青島校區(qū))等多所院校的外聘講師。 張帆,碩士,副教授,中國計算機學會會員,河南省教育廳學術技術帶頭人,華為認證openGauss數(shù)據庫工程師。主持參與各級項目19項,發(fā)表論文22篇,參編著作5部。研究方向為數(shù)據庫技術、大數(shù)據存儲與處理技術、云計算技術。張會娟,博士,華北水利水電大學公共管理學院教師。于2020年在河南理工大學測繪科學與技術系獲得工學博士學位。研究興趣包括地理信息系統(tǒng)、遙感、人工智能等方向,在數(shù)據挖掘、深度學習等方面有深入研究,在國內外期刊發(fā)表相關論文多篇。

圖書目錄

第 1章 Spark架構原理與集群搭建 (
 93min)  1 
1.1 Spark簡介·1 
1.2 Spark技術棧·3 
1.2.1  Spark Core4 
1.2.2  Spark SQL4 
1.2.3 Spark Streaming和 Structured Streaming·5 
1.2.4  Spark MLlib ·5 
1.2.5  Spark GraphX·6 
1.2.6  SparkR ·6 
1.3 Spark架構原理 ·7 
1.3.1 Spark集群和資源管理系統(tǒng) 7 
1.3.2 Spark應用程序 7 
1.3.3 Spark Driver和 Executor ·9 
1.4 Spark程序部署模式10 
1.5 安裝和配置 Spark集群·11 
1.5.1 安裝 Spark ·11 
1.5.2 了解 Spark目錄結構·12 
1.5.3 配置 Spark集群·13 
1.5.4 驗證 Spark安裝·14 
1.6 配置 Spark歷史服務器·15 
1.6.1 歷史服務器配置 16 
1.6.2 啟動 Spark歷史服務器·17 
1.7 使用 spark-shell進行交互式分析 ·18 
1.7.1 運行模式 --master·18 
1.7.2 啟動和退出 spark-shell19 
1.7.3 spark-shell常用命令21 
1.7.4 SparkContext和 SparkSession ·22 
1.7.5  Spark Web UI ·23 
1.8 使用 spark-submit提交 Spark應用程序·25 
1.8.1 spark-submit指令的各種參數(shù)說明·25 
1.8.2 提交 SparkPi程序,計算圓周率 π值·29 
1.8.3 將 SparkPi程序提交到 YARN集群上執(zhí)行 30
第 2章 開發(fā)和部署 Spark應用程序 (
 86min) · 33 
2.1 使用 IntelliJ IDEA開發(fā) Spark SBT應用程序33 
2.1.1 安裝 IntelliJ IDEA ·34 
2.1.2 配置 IntelliJ IDEA Scala環(huán)境37 
2.1.3 創(chuàng)建 IntelliJ IDEA SBT項目·39 
2.1.4 配置 SBT構建文件·42 
2.1.5 準備數(shù)據文件 42 
2.1.6 創(chuàng)建 Spark應用程序·43 
2.1.7 部署分布式 Spark應用程序 ·47 
2.1.8 遠程調試 Spark程序·49 
2.2 使用 IntelliJ IDEA開發(fā) Spark Maven應用程序 ·51 
2.2.1 創(chuàng)建 IntelliJ IDEA Maven項目 ·51 
2.2.2 驗證 SDK安裝和配置 53 
2.2.3 項目依賴和配置管理 55 
2.2.4 測試 Spark程序·58 
2.2.5 項目編譯和打包 58 
2.3 使用 Java開發(fā) Spark應用程序 59 
2.3.1 創(chuàng)建一個新的 IntelliJ項目59 
2.3.2 驗證 SDK安裝和配置 61 
2.3.3 安裝和配置 Maven 63 
2.3.4 創(chuàng)建 Spark應用程序·64 
2.3.5 部署 Spark應用程序·66 
2.3.6 遠程調試 Spark應用程序 ·67 
2.4 使用 Zeppelin進行交互式分析 ·69 
2.4.1 下載 Zeppelin安裝包70 
2.4.2 安裝和配置 Zeppelin ·70 
2.4.3 配置 Spark解釋器·71 
2.4.4 創(chuàng)建和執(zhí)行 Notebook程序·72
第 3章 Spark核心編程 (
 252min) 75 
3.1 理解數(shù)據抽象 RDD·75 
3.1.1 RDD結構75 
3.1.2 RDD容錯76 
3.2 RDD編程模型 77 
3.2.1 單詞計數(shù)應用程序 77 
3.2.2 理解 SparkSession79 
3.2.3 理解 SparkContext ·80 
3.3 創(chuàng)建 RDD 81 
3.3.1 將現(xiàn)有的集合并行化以創(chuàng)建 RDD81 
3.3.2 從存儲系統(tǒng)讀取數(shù)據集以創(chuàng)建 RDD82 
3.3.3 從已有的 RDD轉換得到新的 RDD ·83 
3.3.4 創(chuàng)建 RDD時指定分區(qū)數(shù)量 83 
3.4 操作 RDD 84 
3.4.1 RDD上的 Transformation和 Action ·85 
3.4.2 RDD Transformation操作87 
3.4.3 RDD Action操作·92 
3.4.4 RDD上的描述性統(tǒng)計操作·95 
3.5  Pair RDD96 
3.5.1 創(chuàng)建 Pair RDD ·97 
3.5.2 操作 Pair RDD ·98 
3.5.3 關于 reduceByKey()操作·101 
3.5.4 關于 aggregateByKey()操作103 
3.5.5 關于 combineByKey()操作106 
3.6 持久化 RDD 109 
3.6.1 緩存 RDD 109 
3.6.2 RDD緩存策略  112 
3.6.3 檢查點 RDD  113 
3.7 RDD數(shù)據分區(qū)  113 
3.7.1 獲取和指定 RDD分區(qū)數(shù)  114 
3.7.2 調整 RDD分區(qū)數(shù) 114 
3.7.3 內置數(shù)據分區(qū)器  116 
3.7.4 自定義數(shù)據分區(qū)器  118 
3.7.5 避免不必要的 shuffling ·120 
3.7.6 基于數(shù)據分區(qū)的操作 122 
3.8 深入理解 RDD執(zhí)行過程125 
3.8.1 Spark RDD調度過程·125 
3.8.2 Spark執(zhí)行模型 126 
3.9 Spark資源管理 ·131 
3.9.1 CPU資源分配策略 ·131 
3.9.2 Spark內存管理 132 
3.10 使用共享變量 134 
3.10.1 廣播變量 134 
3.10.2 累加器139 
3.11  Spark RDD編程案例·143 
3.11.1  合并小文件 143 
3.11.2  二次排序實現(xiàn) 145 
3.11.3  Top N實現(xiàn)·146 
3.11.4  酒店數(shù)據預處理 150 
第 4章 Spark SQL (
 202min) 154 
4.1 Spark SQL數(shù)據抽象·155 
4.2 Spark SQL架構組成·156 
4.3 Spark SQL編程模型·157 
4.4 程序入口 SparkSession160 
4.5 
Spark SQL支持的數(shù)據類型162 
4.5.1 
Spark SQL基本數(shù)據類型162 
4.5.2 
Spark SQL復雜數(shù)據類型162 
4.5.3 
模式·163 
4.5.4 
列對象和行對象 163 
 
4.6 
創(chuàng)建 DataFrame ·164 
4.6.1 
簡單創(chuàng)建單列和多列 DataFrame 165 
4.6.2 
從 RDD創(chuàng)建 DataFrame ·168 
4.6.3 
讀取外部數(shù)據源創(chuàng)建 DataFrame 172 
 
4.7 
操作 DataFrame ·191 
4.7.1 
列的多種引用方式 192 
4.7.2 
對 DataFrame執(zhí)行 Transformation轉換操作·193 
4.7.3 
對 DataFrame執(zhí)行 Action操作205 
4.7.4 
對 DataFrame執(zhí)行描述性統(tǒng)計操作 ·206 
4.7.5 
取 DataFrame Row中特定字段·209 
4.7.6 
操作 DataFrame示例· 211 
 
4.8 
存儲 DataFrame ·212 
4.8.1 
寫出 DataFrame ·212 
4.8.2 
存儲模式 215 
4.8.3 
控制 DataFrame的輸出文件數(shù)量·216 
4.8.4 
控制 DataFrame實現(xiàn)分區(qū)存儲·220 
 
4.9 
使用類型化的 DataSet·221 
4.9.1 
了解 DataSet 221 
4.9.2 
創(chuàng)建 DataSet 222 
4.9.3 
操作 DataSet 229 
4.9.4 
類型安全檢查 244 
4.9.5 
編碼器 ·246 
 
4.10 
臨時視圖與 SQL查詢·249 
4.10.1 
在 Spark程序中執(zhí)行 SQL語句 249 
4.10.2 
注冊臨時視圖并執(zhí)行 SQL查詢250 
4.10.3 
使用全局臨時視圖 252 
4.10.4 
直接使用數(shù)據源注冊臨時視圖 ·254 
4.10.5 
查看和管理表目錄 255 
 
4.11緩存 
DataFrame/DataSet 256 
4.11.1  
緩存方法 256 
4.11.2  
緩存策略 257 
4.11.3  
緩存表258 
 
4.12 
Spark SQL編程案例·259 
4.12.1 
實現(xiàn)單詞計數(shù) 259 
4.12.2 
用戶數(shù)據集分析 261 
4.12.3 
電商用戶評論數(shù)據集分析 ·264 
4.12.4 
航空公司航班數(shù)據集分析 ·266 
4.12.5 
數(shù)據增量抽取和全量抽取 ·274 
 
 
第 5章 Spark SQL(高級)(
 190min) ·276 
5.1 Spark SQL函數(shù)·276 
5.2 內置標量函數(shù) 276 
5.2.1 日期時間函數(shù) 277 
5.2.2 字符串函數(shù) 280 
5.2.3 數(shù)學計算函數(shù) 284 
5.2.4 集合元素處理函數(shù) 285 
5.2.5 其他函數(shù) 288 
5.2.6 函數(shù)應用示例 291 
5.2.7 Spark 3數(shù)組函數(shù)·294 
5.3 聚合與透視函數(shù) 301 
5.3.1 聚合函數(shù) 301 
5.3.2 分組聚合 307 
5.3.3 數(shù)據透視  311 
5.3.4 謂詞子查詢 312 
5.4 高級分析函數(shù) 313 
5.4.1 使用多維聚合函數(shù) 313 
5.4.2 使用時間窗口聚合 316 
5.4.3 使用窗口分析函數(shù) 321 
5.5 用戶自定義函數(shù)( UDF)·330 
5.6 數(shù)據集的 join連接332 
5.6.1 join表達式和 join類型·332 
5.6.2 執(zhí)行 join連接333 
5.6.3 處理重復列名 340 
5.6.4 join連接策略·342 
5.7 讀寫 Hive表344 
5.7.1 Spark SQL的 Hive配置345 
5.7.2 Spark Maven項目的 Hive配置·346 
5.7.3 Spark SQL讀寫 Hive表347 
5.7.4 分桶、分區(qū)和排序 352 
5.8 查詢優(yōu)化器 Catalyst 359 
5.8.1 窄轉換和寬轉換 360 
5.8.2 Spark執(zhí)行模型 361 
5.8.3 Catalyst實踐363 
5.8.4 可視化 Spark程序執(zhí)行·366 
5.9 項目 Tungsten372 
5.10 Spark性能調優(yōu)373 
5.11  Spark SQL編程案例 ·375 
5.11.1  電影數(shù)據集分析 375 
5.11.2  電商數(shù)據集分析 379 
5.12 Spark SQL分析案例·387 
5.12.1 用戶行為數(shù)據集說明 ·387 
5.12.2 分析需求說明 388 
5.12.3 數(shù)據探索和預處理 390 
5.12.4 平臺流量分析 394 
5.12.5 用戶行為分析 397 
5.12.6 轉化漏斗分析 405 
5.12.7 用戶 RFM價值分析408 
5.12.8 推薦效果分析 412 
5.12.9 項目分析總結 417 
第 6章 Spark Streaming流處理 (
 73min)·418 
6.1  Spark DStream ·418 
6.2 Spark流處理示例419 
6.2.1 Spark Streaming編程模型·420 
6.2.2 實時股票交易分析 423 
6.2.3 使用外部數(shù)據源 Kafka440 
第 7章 Spark結構化流 (
 162min)·446 
7.1 結構化流簡介 446 
7.2 結構化流編程模型 448 
7.3 結構化流核心概念 451 
7.3.1 數(shù)據源 ·451 
7.3.2 輸出模式 452 
7.3.3 觸發(fā)器類型 452 
7.3.4 數(shù)據接收器 453 
7.3.5 水印·454 
7.4 使用各種流數(shù)據源 454 
7.4.1 使用 Socket數(shù)據源·454 
7.4.2 使用 Rate數(shù)據源·456 
7.4.3 使用 File數(shù)據源458 
7.4.4 使用 Kafka數(shù)據源 461 
7.5 流 DataFrame操作467 
7.5.1 選擇、投影和聚合操作 468 
7.5.2 執(zhí)行 join連接操作471 
7.6 使用數(shù)據接收器 474 
7.6.1 使用 File Data Sink 474 
7.6.2 使用 Kafka Data Sink·475 
7.6.3 使用 Foreach Data Sink478 
7.6.4 使用 Console Data Sink ·480 
7.6.5 使用 Memory Data Sink·482 
7.6.6 Data Sink與輸出模式 ·483 
7.7 深入研究輸出模式 483 
7.7.1 無狀態(tài)流查詢 483 
7.7.2 有狀態(tài)流查詢 484 
7.8 深入研究觸發(fā)器 489 
7.8.1 固定間隔觸發(fā)器 490 
7.8.2 一次性的觸發(fā)器 492 
7.8.3 連續(xù)性的觸發(fā)器 492 
第 8章 Spark結構化流(高級)(
 72min)·496 
8.1 事件時間和窗口聚合 496 
8.1.1 固定窗口聚合 496 
8.1.2 滑動窗口聚合 500 
8.2 水印·504 
8.2.1 限制維護的聚合狀態(tài)數(shù)量 ·504 
8.2.2 處理遲到的數(shù)據 507 
8.3 任意狀態(tài)處理 512 
8.3.1 結構化流的任意狀態(tài)處理 ·513 
8.3.2 處理狀態(tài)超時 514 
8.3.3 任意狀態(tài)處理實戰(zhàn) 515 
8.4 處理重復數(shù)據 524 
8.5 容錯·526 
8.6 流查詢度量指標和容錯 528 
8.6.1 流查詢指標 528 
8.6.2 流監(jiān)控指標 530 
8.7 結構化流案例:運輸公司車輛超速實時監(jiān)測 531 
8.8 結構化流案例:實時訂單分析 ·536 
8.8.1 數(shù)據集說明和數(shù)據源 537 
8.8.2 計算每 10s的銷售和購買訂單數(shù)量 538 
8.8.3 根據購買或售出的總金額統(tǒng)計前 5個客戶541 
8.8.4 找出過去一小時內前 5個交易量昀多的股票543 
第 9章 Spark圖處理庫 GraphFrame (
 80min)546 
9.1 圖基本概念 546 
9.2 GraphFrame圖處理庫簡介 ·548 
9.3 GraphFrame的基本使用·549 
9.3.1 添加 GraphFrame依賴549 
9.3.2 構造圖模型 550 
9.3.3 簡單圖查詢 551 
9.3.4 示例:簡單航班數(shù)據分析 ·556 
9.4 應用 motif模式查詢 ·559 
9.4.1 簡單 motif查詢·560 
9.4.2 狀態(tài)查詢 562 
9.5 構建子圖 ·563 
9.6 內置圖算法 565 
9.6.1 廣度優(yōu)先搜索( BFS)算法 565 
9.6.2 連通分量算法 567 
9.6.3 強連通分量算法 568 
9.6.4 標簽傳播算法 569 
9.6.5 PageRank算法·570 
9.6.6 昀短路徑算法 573 
9.6.7 三角計數(shù)算法 574 
9.7 保存和加載 GraphFrame ·575 
9.8 深入理解 GraphFrame ·576 
9.9 案例:亞馬遜產品聯(lián)購分析 ·578 
9.9.1 基本圖查詢和操作 579 
9.9.2 聯(lián)購商品分析 580 
9.9.3 處理子圖 584 
9.9.4 應用圖算法進行分析 584 
第 10章 Delta Lake數(shù)據湖 (
 61min) 586 
10.1 從數(shù)據倉庫到數(shù)據湖 586 
10.2 解耦存儲層和分析層 588 
10.3 Delta Lake介紹·591 
10.4 Delta Lake架構·593 
10.5 Delta Lake使用·595 
10.5.1 安裝 Delta Lake595 
10.5.2 表批處理讀寫 596 
10.5.3 表流處理讀寫 602 
10.5.4 文件移除 605 
10.5.5 壓縮小文件 612 
10.5.6 增量更新與時間旅行 ·615 
10.5.7 合并更新( upsert)·621 
第 11章 Iceberg數(shù)據湖 (
 90min) 630 
11.1  Apache Iceberg簡介630 
11.2配置和使用 Catalog·631 
11.2.1  配置 Catalog·632 
11.2.2  使用 Catalog·633 
11.2.3  替換 Session Catalog 633 
11.2.4  運行時配置 634 
11.3管理 Catalog中的數(shù)據庫635 
11.4管理 Iceberg表635 
11.4.1  基本的 CRUD操作635 
11.4.2  創(chuàng)建和刪除表 640 
11.4.3  使用分區(qū)表和分桶表 ·642 
11.4.4  數(shù)據覆蓋 652 
11.4.5  修改表結構 654 
11.5探索 Iceberg表663 
11.5.1  History歷史表·663 
11.5.2  Snapshots快照表·664 
11.5.3  Files數(shù)據文件表664 
11.5.4  Manifests文件清單表665 
11.6  Apache Iceberg架構666 
11.6.1  Iceberg Catalog·666 
11.6.2  元數(shù)據文件 667 
11.6.3  清單列表( Manifest List)670 
11.6.4  清單文件( Manifest File)673 
11.7  CRUD操作的底層實現(xiàn) 676 
11.8增量更新與合并更新 679 
11.9時間旅行685 
11.10  隱藏分區(qū)和分區(qū)演變 688 
11.10.1  分區(qū)概念 ·688 
11.10.2  分區(qū)演變示例 ·691 
11.11  使用存儲過程維護表·698 
11.12  整合 Spark結構化流·701 
11.12.1  流讀取 ·701 
11.12.2  流寫入 ·701 
11.12.3  維護流表 ·704 
第 12章 Hudi數(shù)據湖 (
 19min) 707 
12.1 Apache Hudi特性707 
12.1.1  Hudi Timeline·707 
12.1.2 Hudi文件布局 ·709 
12.1.3 Hudi表類型 ·709 
12.1.4 Hudi查詢類型 ·712 
12.2 在 Spark 3中使用 Hudi ·713 
12.2.1 配置 Hudi·713 
12.2.2 初始設置 714 
12.2.3 插入數(shù)據 715 
12.2.4 查詢數(shù)據 716 
12.2.5 更新數(shù)據 718 
12.2.6 增量查詢 718 
12.2.7 時間點查詢 720 
12.2.8 刪除數(shù)據 720 
12.2.9 插入覆蓋 722 
第 13章 Spark大數(shù)據處理綜合案例 (
 15min) ·724 
13.1 項目需求說明 724 
13.2 項目架構設計 725 
13.3 項目實現(xiàn):數(shù)據采集 726 
13.4 項目實現(xiàn):數(shù)據集成 729 
13.4.1 Flume簡介·729 
13.4.2 安裝和配置 Flume ·730 
13.4.3 實現(xiàn)數(shù)據集成 731 
13.5 項目實現(xiàn):數(shù)據 ETL732 
13.6 項目實現(xiàn):數(shù)據清洗與整理 ·735 
13.7 項目實現(xiàn):數(shù)據分析 739 
13.8 項目實現(xiàn):分析結果導出 ·747 
13.9 項目實現(xiàn):數(shù)據可視化 748 
13.9.1 Spring MVC框架簡介·749 
13.9.2 ECharts圖表庫介紹·750 
13.9.3 Spring MVC Web程序開發(fā) ·751 
13.9.4 前端 ECharts組件開發(fā)763 
13.10 項目部署和測試 768 
 
 
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號