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

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

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

定 價:¥119.00

作 者: 辛立偉、辛雨桐
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


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

內(nèi)容簡介

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

作者簡介

  辛立偉,一個在IT領域摸爬滾打二十多年的老程序員、技術培訓師、技術作者。橫跨Java、數(shù)據(jù)庫、大數(shù)據(jù)開發(fā)與分析、人工智能等多個領域,參與多個IT項目的架構設計與開發(fā)。長期堅持撰寫技術博客,曾在多個大學講授Java開發(fā)、數(shù)據(jù)庫和大數(shù)據(jù)技術課程,曾擔任中國石油大學(青島校區(qū))等多所院校的外聘講師。

圖書目錄

第 1章 Spark架構原理與集群搭建( 
78min) ·· 1 
1.1 Spark簡介·1 
1.2 Spark技術棧·3 
1.2.1  Spark Core··4 
1.2.2  Spark SQL··4 
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和 PySpark架構原理 ···7 
1.3.1 Spark集群和資源管理系統(tǒng) ··7 
1.3.2 Spark應用程序 ··7 
1.3.3 Spark Driver和 Executor ···9 
1.3.4 PySpark架構···10 
1.4 Spark程序部署模式11 
1.5 安裝和配置 Spark集群···12 
1.5.1 安裝 Spark ···12 
1.5.2 了解 Spark目錄結(jié)構···13 
1.5.3 配置 Spark/PySpark集群·14 
1.5.4 驗證 PySpark安裝···15 
1.6 配置 Spark歷史服務器···17 
1.6.1 歷史服務器配置 ··17 
1.6.2 啟動 Spark歷史服務器···19 
1.7 使用 PySpark Shell進行交互式分析 ··20 
1.7.1 運行模式 --master·20 
1.7.2 啟動和退出 PySpark Shell···21 
1.7.3 PySpark Shell常用命令···23 
1.7.4 SparkContext和 SparkSession ·23 
1.7.5  Spark Web UI ···25 
1.8 使用 spark-submit提交 PySpark應用程序·28 
1.8.1 spark-submit指令的各種參數(shù)說明·28
1.8.2 提交 pi.ipynb程序,計算圓周率 π值31 
1.8.3 將 PySpark程序提交到 YARN集群上執(zhí)行 ···32第 2章開發(fā)和部署 PySpark應用程序( 
80min)··· 34 
2.1 使用 PyCharm開發(fā) PySpark應用程序···34 
2.1.1 準備數(shù)據(jù)文件 ··34 
2.1.2 安裝 PyCharm··35 
2.1.3 創(chuàng)建一個新的 PyCharm項目··35 
2.1.4 安裝 PySpark包 ··36 
2.1.5 創(chuàng)建 PySpark應用程序···39 
2.1.6 部署到集群中運行 ··40 
2.2 使用 Zeppelin進行交互式分析 ···41 
2.2.1 下載 Zeppelin安裝包··42 
2.2.2 安裝和配置 Zeppelin ···42 
2.2.3 配置 Spark/PySpark解釋器 ·44 
2.2.4 創(chuàng)建和執(zhí)行 Notebook文件·45 
2.3 使用 Jupyter Notebook進行交互式分析 ·46 
2.3.1 配置 PySpark Driver使用 Jupyter Notebook···47 
2.3.2 使用 findSpark包49第 3章 PySpark核心編程( 
212min) · 51 
3.1 理解數(shù)據(jù)抽象 RDD·51 
3.2 RDD編程模型 53 
3.2.1 單詞計數(shù)應用程序 ··53 
3.2.2 理解 SparkSession56 
3.2.3 理解 SparkContext ···57 
3.3 創(chuàng)建 RDD 58 
3.3.1 將現(xiàn)有的集合并行化以創(chuàng)建 RDD··58 
3.3.2 從存儲系統(tǒng)讀取數(shù)據(jù)集以創(chuàng)建 RDD··60 
3.3.3 從已有的 RDD轉(zhuǎn)換得到新的 RDD ···60 
3.3.4 創(chuàng)建 RDD時指定分區(qū)數(shù)量 60 
3.4 操作 RDD 61 
3.4.1 RDD上的 Transformation和 Action ···62 
3.4.2 RDD Transformation操作64 
3.4.3 RDD Action操作·70 
3.4.4 RDD上的描述性統(tǒng)計操作·73 
3.5  Key-Value Pair RDD 74 
3.5.1 創(chuàng)建 Pair RDD ·75 
3.5.2 操作 Pair RDD ·76 
3.5.3 關于 reduceByKey()操作81 
3.5.4 關于 aggregateByKey() 操作···83 
3.5.5 關于 combineByKey()操作·87 3.6 持久化 RDD 90 
3.6.1 緩存 RDD 90 
3.6.2 RDD緩存策略 92 
3.6.3 檢查點 RDD 93 
3.7 數(shù)據(jù)分區(qū) ·94 
3.7.1 獲取和指定 RDD分區(qū)數(shù) 95 
3.7.2 調(diào)整 RDD分區(qū)數(shù)96 
3.7.3 內(nèi)置數(shù)據(jù)分區(qū)器 ··97 
3.7.4 自定義數(shù)據(jù)分區(qū)器 101 
3.7.5 避免不必要的 shuffling ·102 
3.7.6 基于數(shù)據(jù)分區(qū)的操作 104 
3.8 使用共享變量 108 
3.8.1 廣播變量 109 
3.8.2 累加器 ··· 114 
3.9 PySpark RDD可視化 116 
3.10 PySpark RDD編程案例 ·· 117 
3.10.1 合并小文件 · 117 
3.10.2 二次排序?qū)崿F(xiàn) · 119 
3.10.3 Top N實現(xiàn)··121 
3.10.4 數(shù)據(jù)聚合計算 ·125 第 4章 PySpark SQL(初級) ( 
163min)·127 
4.1 PySpark SQL數(shù)據(jù)抽象·127 
4.2 PySpark SQL編程模型·129 
4.3 程序入口 SparkSession··132 
4.4 PySpark SQL中的模式和對象··134 
4.4.1 模式···134 
4.4.2 列對象和行對象 135 
4.5 簡單構造 DataFrame ·136 
4.5.1 簡單創(chuàng)建單列和多列 DataFrame ··137 
4.5.2 從 RDD創(chuàng)建 DataFrame ···140 
4.5.3 讀取外部數(shù)據(jù)源創(chuàng)建 DataFrame ··144 
4.6 操作 DataFrame ·166 
4.6.1 列的多種引用方式 167 
4.6.2 對 DataFrame執(zhí)行 Transformation轉(zhuǎn)換操作···170 
4.6.3 對 DataFrame執(zhí)行 Action操作184 
4.6.4 對 DataFrame執(zhí)行描述性統(tǒng)計操作 ·185 
4.6.5 提取 DataFrame Row中特定字段·188 
4.6.6 操作 DataFrame示例·189 
4.7 存儲 DataFrame ·191 
4.7.1 寫出 DataFrame ·191 4.7.2 存儲模式 194 
4.7.3 控制 DataFrame的輸出文件數(shù)量·195 
4.7.4 控制 DataFrame實現(xiàn)分區(qū)存儲·199 
4.8 臨時視圖與 SQL查詢···201 
4.8.1 在 PySpark程序中執(zhí)行 SQL語句201 
4.8.2 注冊臨時視圖并執(zhí)行 SQL查詢 ···203 
4.8.3 使用全局臨時視圖 206 
4.8.4 直接使用數(shù)據(jù)源注冊臨時視圖 ·208 
4.8.5 查看和管理表目錄 209 
4.9 緩存 DataFrame · 211 
4.9.1 緩存方法  211 
4.9.2 緩存策略 213 
4.9.3 緩存表 ···214 
4.10 PySpark SQL可視化···214 
4.10.1 PySpark DataFrame轉(zhuǎn)換到 Pandas·214 
4.10.2 PySpark SQL DataFrame可視化 218 
4.11  PySpark SQL編程案例 ···220 
4.11.1  實現(xiàn)單詞計數(shù) ·220 
4.11.2  用戶數(shù)據(jù)集分析 ·222 
4.11.3  航空公司航班數(shù)據(jù)集分析 ··224 第 5章 PySpark SQL(高級) ( 
115min)·234 
5.1 PySpark SQL函數(shù)·234 
5.2 內(nèi)置標量函數(shù) 234 
5.2.1 日期時間函數(shù) 235 
5.2.2 字符串函數(shù) 239 
5.2.3 數(shù)學計算函數(shù) 243 
5.2.4 集合元素處理函數(shù) 244 
5.2.5 其他函數(shù) 248 
5.2.6 函數(shù)應用示例 252 
5.2.7 PySpark 3數(shù)組函數(shù)···255 
5.3 聚合與透視函數(shù) 264 
5.3.1 聚合函數(shù) 264 
5.3.2 分組聚合 271 
5.3.3 數(shù)據(jù)透視 274 
5.4 高級分析函數(shù) 277 
5.4.1 使用多維聚合函數(shù) 277 
5.4.2 使用時間窗口聚合 281 
5.4.3 使用窗口分析函數(shù) 286 
5.5 用戶自定義函數(shù)( UDF)·296 
5.5.1 內(nèi)部原理 296 5.5.2 創(chuàng)建和使用 UDF ···297 
5.5.3 特殊處理 303 
5.6 數(shù)據(jù)集的 join連接305 
5.6.1 join表達式和 join類型·306 
5.6.2 執(zhí)行 join連接307 
5.6.3 處理重復列名 314 
5.6.4 join連接策略·317 
5.7 讀寫 Hive表··319 
5.7.1 PySpark SQL的 Hive配置320 
5.7.2 PySpark SQL讀寫 Hive表322 
5.7.3 分桶、分區(qū)和排序 332 
5.8 PySpark SQL編程案例·334 
5.8.1 電商訂單數(shù)據(jù)分析 334 
5.8.2 電影評分數(shù)據(jù)集分析 344 第 6章 PySpark結(jié)構化流(初級) ( 
195min)·349 
6.1 PySpark DStream流簡介···349 
6.2 PySpark結(jié)構化流簡介··354 
6.3 PySpark結(jié)構化流編程模型··356 
6.4 PySpark結(jié)構化流核心概念··360 
6.4.1 數(shù)據(jù)源 ···360 
6.4.2 輸出模式 361 
6.4.3 觸發(fā)器類型 362 
6.4.4 數(shù)據(jù)接收器 362 
6.4.5 水印···363 
6.5 使用各種流數(shù)據(jù)源 363 
6.5.1 使用 Socket數(shù)據(jù)源···364 
6.5.2 使用 Rate數(shù)據(jù)源···365 
6.5.3 使用 File數(shù)據(jù)源368 
6.5.4 使用 Kafka數(shù)據(jù)源 372 
6.6 流 DataFrame操作379 
6.6.1 選擇、投影和聚合操作 379 
6.6.2 執(zhí)行 join連接操作385 
6.7 使用數(shù)據(jù)接收器 388 
6.7.1 使用 File Data Sink 389 
6.7.2 使用 Kafka Data Sink·391 
6.7.3 使用 Foreach Data Sink··394 
6.7.4 使用 Console Data Sink ·399 
6.7.5 使用 Memory Data Sink·401 
6.7.6 Data Sink與輸出模式 ···402 
6.8 深入研究輸出模式 402 
6.8.1 無狀態(tài)流查詢 403 6.8.2 有狀態(tài)流查詢 404 
6.9 深入研究觸發(fā)器 409 
6.9.1 固定間隔觸發(fā)器 410 
6.9.2 一次性的觸發(fā)器 412 
6.9.3 連續(xù)性的觸發(fā)器 413 第 7章 PySpark結(jié)構化流(高級) ( 
62min)···416 
7.1 事件時間和窗口聚合 416 
7.1.1 固定窗口聚合 416 
7.1.2 滑動窗口聚合 421 
7.2 水印···426 
7.2.1 限制維護的聚合狀態(tài)數(shù)量 ·426 
7.2.2 處理遲到的數(shù)據(jù) 429 
7.3 處理重復數(shù)據(jù) 436 
7.4 容錯···439 
7.5 流查詢度量指標 441 
7.6 結(jié)構化流案例:運輸公司車輛超速實時監(jiān)測 ··443 
7.6.1 實現(xiàn)技術剖析 443 
7.6.2 完整實現(xiàn)代碼 449 
7.6.3 執(zhí)行步驟演示 451 第 8章 PySpark大數(shù)據(jù)分析綜合案例 ( 
21min)··455 
8.1 項目需求說明 455 
8.2 項目架構設計 456 
8.3 項目實現(xiàn):數(shù)據(jù)采集 457 
8.3.1 爬蟲程序?qū)崿F(xiàn):使用 requests庫··457 
8.3.2 爬蟲程序?qū)崿F(xiàn):使用 Scrapy框架460 
8.4 項目實現(xiàn):數(shù)據(jù)集成 466 
8.4.1 Flume簡介 466 
8.4.2 安裝和配置 Flume·467 
8.4.3 實現(xiàn)數(shù)據(jù)集成 468 
8.5 項目實現(xiàn):數(shù)據(jù) ELT 469 
8.6 項目實現(xiàn):數(shù)據(jù)清洗與整理 ·472 
8.7 項目實現(xiàn):數(shù)據(jù)分析 476 
8.8 項目實現(xiàn):分析結(jié)果導出 ·479 
8.9 項目實現(xiàn):數(shù)據(jù)可視化 480 
8.9.1 Flask框架簡介··480 
8.9.2 ECharts圖表庫介紹 ··481 
8.9.3 Flask Web程序開發(fā) ··483 
8.9.4 前端 ECharts組件開發(fā)··485 
 
 
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號