PySpark原理深入與編程實戰(微課視頻版)
辛立偉、辛雨桐
買這商品的人也買了...
-
Pandas 資料分析實戰:使用 Python 進行高效能資料處理及分析 (Learning pandas : High-performance data manipulation and analysis in Python, 2/e)$580$452 -
打造期權自動理財術$500$490 -
CQRS (Command Query Responsibility Segregation)$1,050$998 -
C++ 語言的設計和演化 (The Design and Evolution of C++)$594$564 -
小輕快跨平台:王的編輯器 Visual Studio Code 聖經$880$695 -
$806Angular 高級編程, 4/e (Pro Angular 9: Build Powerful and Dynamic Web Apps) -
使用 AWS 在雲端建置 Linux 伺服器的 20堂課$500$395 -
Spring Boot:建置與執行 (Spring Boot: Up and Running: Building Cloud Native Java and Kotlin Applications)$580$458 -
Python 資料分析必備套件!Pandas 資料清理、重塑、過濾、視覺化 (Pandas 1.x Cookbook, 2/e)$780$663 -
從 Docker 動手邁入全新 DevOps 時代:最完整 Kubernetes 全書$1,280$1,011 -
域滲透攻防指南$774$735 -
$658Web 漏洞解析與攻防實戰 -
資料科學 SQL 工作術 – 以 MySQL 為例與情境式 ChatGPT 輔助學習 (SQL for Data Scientists - A Beginner’s Guide for Building Datasets for Analysis)$630$498 -
$1,134Spark原理深入與編程實戰(微課視頻版) -
計算機組成與設計:硬件/軟件接口 RISC-V 版 (原書第2版)$1,014$963 -
$599複盤 -
$607PySpark大數據分析實戰 -
LangChain 開發手冊 -- OpenAI × LCEL 表達式 × Agent 自動化流程 × RAG 擴展模型知識 × 圖形資料庫 × LangSmith 除錯工具$680$537 -
演算法 圖解原理 x Python 實作 x 創意應用 王者歸來, 4/e$780$616 -
$914PCI Express 體系結構導讀, 2/e -
資料工程基礎|規劃和建構強大、穩健的資料系統 (Fundamentals of Data Engineering)$980$774 -
嵌入式計算系統設計原理$594$564 -
AI 超神筆記術:NotebookLM 高效資料整理與分析 250技$480$360 -
深談 AWS 雲端上的 AI Agent:系統化學習 AWS-AI 證照,協助企業管理 AI Agent$680$530 -
斯特朗線性代數, 4/e$719$683
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
78折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$390 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書系統講述Apache Spark/PySpark大數據計算平臺的原理,以及如果將Apache PySpark應用於大數據的實時流處理、批處理等各個場景。通過原理深入學習和實踐示例、案例的學習應用,使讀者瞭解並掌握Apache Spark/PySpark的基本原理和技能,接近理論與實踐的距離。 全書共分為8章,主要內容包括:Spark架構原理與集群搭建、開發和部署PySpark應用程序、PySpark核心編程、PySpark SQL、PySpark SQL高級分析、PySpark結構化流、PySpark結構化流高級處理、Spark大數據處理綜合案例。本書源碼全部在Apache Spark 3.1.2上調試成功,所有示例和案例均基於Python 3.x語言。 為降低讀者學習大數據技術的門檻,本書除了提供了豐富的上機實踐操作和範例程序詳解之外,本書作者還為購買和使用本書的讀者提供了搭建好的Hadoop、Hive數倉和PySpark大數據開發和學習環境。讀者既可以參照本書的講解自行搭建Hadoop和PySpark環境,也可直接使用作者提供的開始和學習環境,快速開始大數據和PySpark的學習。 本書系統講解了Apache Spark/PySpark大數據計算平臺的原理和流、批處理的開發實踐,內容全面、實例豐富、可操作性強,做到了理論與實踐相結合。本書適合大數據學習愛好者、想要入門Apache Spark/PySpark的讀者作為入門和提高的技術參考書,也適合用作大中專院校大數據專業相關的學生和老師的教材或教學參考書。
目錄大綱
目錄
第 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集群和資源管理系統 ··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目錄結構···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指令的各種參數說明·28
1.8.2 提交 pi.ipynb程序,計算圓周率 π值31
1.8.3 將 PySpark程序提交到 YARN集群上執行 ···32第 2章開發和部署 PySpark應用程序(
80min)··· 34
2.1 使用 PyCharm開發 PySpark應用程序···34
2.1.1 準備數據文件 ··34
2.1.2 安裝 PyCharm··35
2.1.3 創建一個新的 PyCharm項目··35
2.1.4 安裝 PySpark包 ··36
2.1.5 創建 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 創建和執行 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 理解數據抽象 RDD·51
3.2 RDD編程模型 53
3.2.1 單詞計數應用程序 ··53
3.2.2 理解 SparkSession56
3.2.3 理解 SparkContext ···57
3.3 創建 RDD 58
3.3.1 將現有的集合並行化以創建 RDD··58
3.3.2 從存儲系統讀取數據集以創建 RDD··60
3.3.3 從已有的 RDD轉換得到新的 RDD ···60
3.3.4 創建 RDD時指定分區數量 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上的描述性統計操作·73
3.5 Key-Value Pair RDD 74
3.5.1 創建 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 數據分區 ·94
3.7.1 獲取和指定 RDD分區數 95
3.7.2 調整 RDD分區數96
3.7.3 內置數據分區器 ··97
3.7.4 自定義數據分區器 101
3.7.5 避免不必要的 shuffling ·102
3.7.6 基於數據分區的操作 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 二次排序實現 · 119
3.10.3 Top N實現··121
3.10.4 數據聚合計算 ·125 第 4章 PySpark SQL(初級) (
163min)·127
4.1 PySpark SQL數據抽象·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 簡單創建單列和多列 DataFrame ··137
4.5.2 從 RDD創建 DataFrame ···140
4.5.3 讀取外部數據源創建 DataFrame ··144
4.6 操作 DataFrame ·166
4.6.1 列的多種引用方式 167
4.6.2 對 DataFrame執行 Transformation轉換操作···170
4.6.3 對 DataFrame執行 Action操作184
4.6.4 對 DataFrame執行描述性統計操作 ·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的輸出文件數量·195
4.7.4 控制 DataFrame實現分區存儲·199
4.8 臨時視圖與 SQL查詢···201
4.8.1 在 PySpark程序中執行 SQL語句201
4.8.2 註冊臨時視圖並執行 SQL查詢 ···203
4.8.3 使用全局臨時視圖 206
4.8.4 直接使用數據源註冊臨時視圖 ·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轉換到 Pandas·214
4.10.2 PySpark SQL DataFrame可視化 218
4.11 PySpark SQL編程案例 ···220
4.11.1 實現單詞計數 ·220
4.11.2 用戶數據集分析 ·222
4.11.3 航空公司航班數據集分析 ··224 第 5章 PySpark SQL(高級) (
115min)·234
5.1 PySpark SQL函數·234
5.2 內置標量函數 234
5.2.1 日期時間函數 235
5.2.2 字符串函數 239
5.2.3 數學計算函數 243
5.2.4 集合元素處理函數 244
5.2.5 其他函數 248
5.2.6 函數應用示例 252
5.2.7 PySpark 3數組函數···255
5.3 聚合與透視函數 264
5.3.1 聚合函數 264
5.3.2 分組聚合 271
5.3.3 數據透視 274
5.4 高級分析函數 277
5.4.1 使用多維聚合函數 277
5.4.2 使用時間窗口聚合 281
5.4.3 使用窗口分析函數 286
5.5 用戶自定義函數( UDF)·296
5.5.1 內部原理 296 5.5.2 創建和使用 UDF ···297
5.5.3 特殊處理 303
5.6 數據集的 join連接305
5.6.1 join表達式和 join類型·306
5.6.2 執行 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 分桶、分區和排序 332
5.8 PySpark SQL編程案例·334
5.8.1 電商訂單數據分析 334
5.8.2 電影評分數據集分析 344 第 6章 PySpark結構化流(初級) (
195min)·349
6.1 PySpark DStream流簡介···349
6.2 PySpark結構化流簡介··354
6.3 PySpark結構化流編程模型··356
6.4 PySpark結構化流核心概念··360
6.4.1 數據源 ···360
6.4.2 輸出模式 361
6.4.3 觸發器類型 362
6.4.4 數據接收器 362
6.4.5 水印···363
6.5 使用各種流數據源 363
6.5.1 使用 Socket數據源···364
6.5.2 使用 Rate數據源···365
6.5.3 使用 File數據源368
6.5.4 使用 Kafka數據源 372
6.6 流 DataFrame操作379
6.6.1 選擇、投影和聚合操作 379
6.6.2 執行 join連接操作385
6.7 使用數據接收器 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 無狀態流查詢 403 6.8.2 有狀態流查詢 404
6.9 深入研究觸發器 409
6.9.1 固定間隔觸發器 410
6.9.2 一次性的觸發器 412
6.9.3 連續性的觸發器 413 第 7章 PySpark結構化流(高級) (
62min)···416
7.1 事件時間和窗口聚合 416
7.1.1 固定窗口聚合 416
7.1.2 滑動窗口聚合 421
7.2 水印···426
7.2.1 限制維護的聚合狀態數量 ·426
7.2.2 處理遲到的數據 429
7.3 處理重復數據 436
7.4 容錯···439
7.5 流查詢度量指標 441
7.6 結構化流案例:運輸公司車輛超速實時監測 ··443
7.6.1 實現技術剖析 443
7.6.2 完整實現代碼 449
7.6.3 執行步驟演示 451 第 8章 PySpark大數據分析綜合案例 (
21min)··455
8.1 項目需求說明 455
8.2 項目架構設計 456
8.3 項目實現:數據採集 457
8.3.1 爬蟲程序實現:使用 requests庫··457
8.3.2 爬蟲程序實現:使用 Scrapy框架460
8.4 項目實現:數據集成 466
8.4.1 Flume簡介 466
8.4.2 安裝和配置 Flume·467
8.4.3 實現數據集成 468
8.5 項目實現:數據 ELT 469
8.6 項目實現:數據清洗與整理 ·472
8.7 項目實現:數據分析 476
8.8 項目實現:分析結果導出 ·479
8.9 項目實現:數據可視化 480
8.9.1 Flask框架簡介··480
8.9.2 ECharts圖表庫介紹 ··481
8.9.3 Flask Web程序開發 ··483
8.9.4 前端 ECharts組件開發··485



