PySpark大數據分析實戰(zhàn) 伍鮮 常麗娟
定 價:119 元
叢書名:大數據科學叢書
- 作者:伍鮮常麗娟
- 出版時間:2023/12/1
- ISBN:9787111739593
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書是PySpark大數據分析的入門讀物,適合有一定Python基礎的讀者學習使用。本書基于最新版本的PySpark 3.4.x編寫,全書共11章,系統(tǒng)地介紹了PySpark大數據分析的方法和技巧,內容涵蓋了大數據的相關技術、PySpark的基本概念、Spark環(huán)境搭建、數據分析的基本概念及相關工具、開發(fā)工具的選擇、Spark核心編程和Spark SQL操作等基礎知識和核心技術,以及Spark流式數據處理、Spark機器學習庫MLlib和基于協(xié)同過濾的圖書推薦系統(tǒng)等高級主題。本書通過多個實戰(zhàn)案例,帶領讀者掌握使用Python和Spark進行大數據分析的方法和技巧,從而提高讀者的數據處理能力和業(yè)務價值。
本書內容全面、示例豐富、講解清晰,讀者可以直接應用書中的案例。本書適合自學,也可作為計算機、軟件工程、數據科學與大數據等專業(yè)的教學參考書,用于指導大數據分析編程實踐,還可供相關技術人員參考。
1. 6位行業(yè)專家鼎力推薦,大數據從業(yè)者案頭寶典。
2. 贈送超過2200分鐘的視頻教程+程序源代碼+運行環(huán)境安裝包,助你早日實現從入門到精通。
隨著互聯(lián)網和科技的發(fā)展,每天都會出現大量的數據,這些數據包含了豐富的信息,大數據處理分析已經成為全球范圍內的重要議題。大數據分析是當今時代的重要技能,它可以幫助我們從海量的數據中發(fā)現規(guī)律、洞察趨勢、優(yōu)化決策。然而,隨著數據量爆炸式的增長和復雜度的提高,傳統(tǒng)的數據分析工具已經難以滿足需求。我們需要一種更強大、更靈活、更高效的大數據處理平臺來應對各種數據挑戰(zhàn)。
Spark是目前最流行的大數據處理框架之一,可以處理大規(guī)模的數據集,它具有快速、易用、通用和兼容等特點,支持批處理、流式處理、交互式查詢和機器學習等多種場景,對于大數據分析非常有用。Python是一種廣泛使用的優(yōu)雅、易學的編程語言,因其簡潔明了的語法和強大的數據處理能力,受到廣 大數據分析師和數據科學家的喜愛,它擁有豐富的數據科學庫和社區(qū)資源,可以與Spark無縫集成,實現大數據分析的全棧開發(fā)。PySpark是Spark的Python接口,它允許我們使用Python語言進行大數據分析。系統(tǒng)地學習PySpark,掌握大數據處理的技能,能夠處理和分析大規(guī)模的數據集,這對于數據科學家和數據工程師來說是非常重要的。此外,由于PySpark是開源的,因此它也為我們提供了一個學習和分享知識的平臺。
在閱讀本書的過程中,可以對照源代碼按章節(jié)順序進行學習。當然,如果對書中某些章節(jié)比較熟悉,也可以跳過,直接學習需要了解的章節(jié)。本書源代碼主要使用PyCharm社區(qū)版開發(fā),數據分析中的可視化、交互式開發(fā)、交互式查詢等可以使用JupyterLab或Databricks進行操作,因此本書也提供基于JupyterLab和Databricks開發(fā)的源代碼。當然讀者也可以選擇自己喜歡的工具進行開發(fā)。
本書內容共分為11章。第1~4章是基礎知識介紹;第5、6章是Spark的核心知識,其核心數據抽象RDD和DataFrame及相關的轉換操作是后續(xù)章節(jié)的基礎,對整個Spark的學習都非常重要;第7章是整合大數據倉庫Hive,讓Spark可以輕松處理已有數據倉庫中的數據;第8~10章是Spark中的高級主題,包括流式數據處理和機器學習,其底層數據依然是RDD和DataFrame;第11章是一個綜合案例。各章節(jié)內容說明如下:
第1章主要介紹了大數據的發(fā)展以及相關的技術,包括Spark的發(fā)展歷程、特點、架構、PySpark庫等,讓讀者對大數據技術及Spark有一個大致的了解。
第2章主要介紹了Spark環(huán)境的搭建,包括操作系統(tǒng)基礎環(huán)境準備、單機環(huán)境搭建、獨立集群環(huán)境搭建、YARN集群環(huán)境搭建以及云服務模式Databricks介紹等,讓我們開發(fā)的代碼有運行的地方。
第3章主要介紹了數據分析的基礎知識,包括數據分析流程、數據分析的常用工具庫和可視化庫等。
第4章主要介紹了幾種開發(fā)工具,包括Databricks、JupyterLab、PyCharm和PyCharm插件等,并且用每種工具都完成一個數據分析案例的開發(fā),讓讀者對各種開發(fā)工具的開發(fā)流程及特點有所了解。
第5章主要介紹了Spark的核心功能Spark Core,包括Spark程序入口SparkContext、核心數據抽象RDD,以及RDD的創(chuàng)建、轉換、持久化等功能,并用案例展示了如何在數據分析中使用RDD。
第6章主要介紹了Spark的結構化數據處理Spark SQL,包括統(tǒng)一的Spark程序入口SparkSession、核心數據抽象DataFrame,以及DataFrame的創(chuàng)建、轉換、SQL操作和自定義函數等功能,并用案例展示了DataFrame在數據分析中的應用。
第7章主要介紹了使用Spark操作大數據倉庫Hive中的數據,無需數據遷移,即可讓Spark輕松處理Hive中已有的海量數據,并用案例展示了Spark如何直接操作Hive數據進行數據分析。
第8章和第9章主要介紹了兩種不同的流式數據處理,包括創(chuàng)建、數據處理、結果輸出等。第8章Spark Streaming中的數據抽象是DStream,底層數據是RDD;第9章Structured Streaming的底層數據是DataFrame。
第10章主要介紹了機器學習庫MLlib,包括機器學習的基礎知識、機器學習流程、模型評估、機器學習算法等。對機器學習感興趣的讀者可以了解到如何在Spark集群中完成機器學習,解決單機環(huán)境下的機器學習無法解決的問題。
第11章主要介紹了一個綜合案例,基于協(xié)同過濾的圖書推薦系統(tǒng),綜合運用Spark SQL、Structured Streaming、Spark MLlib、Kafka、MySQL、Flask、Flask-Admin等相關技術,實現大數據分析的全棧開發(fā)。
本書讀者對象
本書適合有一定Python基礎的讀者,包括Python開發(fā)人員、大數據開發(fā)人員、數據分析師、數據科學愛好者等。
本書技術支持
非常感謝大家選擇本書,希望本書可以給讀者帶來有價值的東西。在本書創(chuàng)作過程中,作者盡力做好每個知識點的呈現,但由于作者的精力和能力有限,在創(chuàng)作過程中難免有疏漏和不足之處,希望大家不吝指正。關于本書的任何問題都可發(fā)送郵件至wux_labs@outlook.com與作者交流。
本書配套資料
本書提供完整源代碼及視頻講解,讀者可以下載使用(具體方法詳見本書封底)。
關于作者
本書作者擁有多年金融領域大數據處理實戰(zhàn)經驗,曾負責多家銀行的數據倉庫、大數據倉庫、營銷客戶集市建設,熱愛各種主流技術,對大數據技術棧Hadoop、Hive、Spark、Kafka等有深入研究,熱愛數據科學、
伍鮮,就職于中電金信軟件有限公司,擔任高級軟件工程師。擁有多年金融領域大數據處理實戰(zhàn)經驗,曾負責多家銀行的Teradata數據倉庫、FusionInsight大數據集群、阿里云大數據倉庫、智能營銷客戶集市和客戶中心建設。
熱衷于各種主流技術,對大數據技術棧Hadoop、Hive、Spark、Kafka等有深入研究。熱愛數據科學、機器學習、云計算、人工智能通過了微軟Azure開發(fā)人員、Azure數據工程師Azure解決方案架構師專家認證,對Databricks的使用有豐富的經驗。
前言
第1章 初識PySpark/
1.1 關于數據/
1.2 了解Hadoop/
1.2.1 分布式文件系統(tǒng)HDFS/
1.2.2 分布式計算框架MapReduce/
1.2.3 資源調度管理框架YARN/
1.3 了解Hive/
1.4 了解Spark/
1.4.1 Spark是什么/
1.4.2 Spark的發(fā)展歷程/
1.4.3 Spark的特點/
1.4.4 Spark的生態(tài)系統(tǒng)/
1.4.5 Spark的部署模式/
1.4.6 Spark的運行架構/
1.5 PySpark庫介紹/
1.6 本章小結/
第2章 Spark環(huán)境搭建/
2.1 安裝環(huán)境準備/
2.1.1 操作系統(tǒng)準備/
2.1.2 Java環(huán)境準備/
2.1.3 Python環(huán)境準備/
2.1.4 Spark安裝包下載/
2.1.5 Hadoop安裝包下載/
2.2 Spark本地模式安裝/
2.2.1 使用交互式pyspark運行代碼/
2.2.2 寬窄依賴和階段劃分/
2.2.3 使用spark-submit提交代碼/
2.3 Spark獨立集群安裝/
2.3.1 配置并啟動Spark集群/
2.3.2 使用spark-submit提交代碼/
2.3.3 Spark History Server歷史服務/
2.3.4 獨立集群模式的代碼運行流程/
2.4 Spark on YARN模式安裝/
2.4.1 安裝Hadoop集群/
2.4.2 格式化NameNode/
2.4.3 啟動Hadoop集群/
2.4.4 配置Spark運行在YARN上/
2.4.5 使用spark-submit提交代碼/
2.4.6 Spark on YARN模式代碼運行流程/
2.5 云服務模式Databricks介紹/
2.5.1 Databricks基本概念/
2.5.2 創(chuàng)建集群/
2.5.3 數據集成/
2.5.4 創(chuàng)建筆記本/
2.5.5 運行案例/
2.5.6 創(chuàng)建作業(yè)/
2.5.7 運行作業(yè)/
2.5.8 其他類型的作業(yè)/
2.6 本章小結/
第3章 數據分析基礎/
3.1 什么是數據分析/
3.2 Python數據分析工具介紹/
3.2.1 數學計算庫NumPy介紹/
3.2.2 數據分析庫Pandas介紹/
3.3 數據分析圖表介紹/
3.4 Python數據可視化工具介紹/
3.4.1 Matplotlib介紹/
3.4.2 Seaborn介紹/
3.4.3 Pyecharts介紹/
3.4.4 三種可視化工具的對比/
3.5 本章小結/
第4章 選擇合適的開發(fā)工具/
4.1 使用Databricks探索數據/
4.1.1 使用筆記本開發(fā)代碼/
4.1.2【實戰(zhàn)案例】阿凡達電影評價分析/
4.2 使用JupyterLab探索數據/
4.2.1 創(chuàng)建虛擬環(huán)境/
4.2.2 安裝JupyterLab/
4.2.3 集成Spark引擎/
4.2.4【實戰(zhàn)案例】二手房數據分析/
4.3 使用PyCharm探索數據/
4.3.1 安裝PyCharm/
4.3.2 安裝Python/
4.3.3 創(chuàng)建PyCharm項目/
4.3.4 PyCharm插件介紹/
4.3.5【實戰(zhàn)案例】招聘信息數據分析/
4.4 本章小結/
第5章 核心功能Spark Core/
5.1 SparkContext介紹/
5.2 RDD介紹/
5.3 RDD的特性/
5.4 RDD的創(chuàng)建/
5.4.1 通過并行化本地集合創(chuàng)建RDD/
5.4.2 通過外部文件系統(tǒng)數據創(chuàng)建RDD/
5.4.3 通過已存在的RDD衍生新的RDD/
5.5 RDD的算子/
5.5.1 什么是算子/
5.5.2 算子的分類/
5.6 常用的Transformation算子/
5.6.1 基本算子/
5.6.2 二元組相關的算子/
5.6.3 分區(qū)相關的算子/
5.7 常用的Action算子/
5.7.1 基本算子/
5.7.2 Executor端執(zhí)行的算子/
5.8 RDD的持久化/
5.8.1 緩存/
5.8.2 緩存的特點/
5.8.3 檢查點/
5.8.4 緩存和檢查點的比較/
5.9 共享變量/
5.9.1 廣播變量/
5.9.2 累加器/
5.10【實戰(zhàn)案例】共享單車租賃數據分析/
5.10.1 數據集成/
5.10.2 不同月份的租賃數據分析/
5.10.3 不同時間的租賃數據分析/
5.10.4 不同周期的租賃數據分析/
5.10.5 不同維度的租賃數據分析/
5.10.6 天氣對租賃需求的影響/
5.10.7 溫度、風速對租賃需求的影響/
5.11 本章小結/
第6章 結構化數據處理Spark SQL/
6.1 Spark SQL概述/
6.1.1 什么是Spark SQL/
6.1.2 Spark SQL的特點/
6.2 Spark SQL的發(fā)展歷程/
6.2.1 從HDFS到Hive/
6.2.2 從Hive到Shark/
6.2.3 從Shark到Spark SQL/
6.3 SparkSession介紹/
6.4 DataFrame概述/
6.4.1 什么是DataFrame/
6.4.2 DataFrame的組成/
6.5 DataFrame的創(chuàng)建/
6.5.1 通過RDD創(chuàng)建/
6.5.2 通過Pandas的DataFrame創(chuàng)建/
6.5.3 通過外部數據創(chuàng)建/
6.6 DataFrame的基本操作/
6.6.1 DSL語法風格/
6.6.2 Spark Join策略介紹/
6.6.3 SQL語法風格/
6.7 DataFrame的函數操作/
6.7.1 內置函數/
6.7.2 窗口函數/
6.7.3 自定義函數/
6.8 DataFrame的數據清洗/
6.8.1 刪除重復行/
6.8.2 缺失值的處理/
6.9 DataFrame的持久化/
6.10 DataFrame的數據寫出/
6.10.1 寫出數據到文件/
6.10.2 寫出數據到數據庫/
6.11【實戰(zhàn)案例】世界杯數據可視化分析/
6.11.1 世界杯成績匯總信息分析/
6.11.2 世界杯比賽信息分析/
6.12 本章小結/
第7章 集成Hive數據倉庫/
7.1 Spark on Hive操作數據倉庫/
7.1.1 安裝Hive/
7.1.2 啟動元數據服務/
7.1.3 配置Spark on Hive/
7.1.4 驗證Spark on Hive/
7.2 使用MySQL替換Hive元數據服務/
7.2.1 初始化MySQL/
7.2.2 配置Spark on MySQL/
7.2.3 驗證Spark on MySQL/
7.3【實戰(zhàn)案例】基于Hive數據倉庫的電商數據分析/
7.3.1 數據集成/
7.3.2 爆款產品分析/
7.3.3 月交易情況分析/
7.3.4 忠誠客戶分析/
7.3.5 客戶區(qū)域分析/
7.4 本章小結/
第8章 Spark Streaming流式數據處理/
8.1 流式數據處理概述/
8.1.1 靜態(tài)數據和流式數據/
8.1.2 批量計算和實時計算/
8.1.3 流式計算/
8.2 Spark Streaming概述/
8.3 StreamingContext介紹/
8.4 DStream介紹/
8.5 DStream的創(chuàng)建/
8.5.1 通過文件創(chuàng)建/
8.5.2 通過套接字創(chuàng)建/
8.5.3 通過RDD隊列創(chuàng)建/
8.6 DStream的Transformation操作/
8.6.1 無狀態(tài)轉換/
8.6.2 有狀態(tài)轉換/
8.7 DStream的輸出操作/
8.8 DStream的SQL操作/
8.9 DStream的持久化/
8.10【實戰(zhàn)案例】地震數據處理分析/
8.10.1 數據集成/
8.10.2 震級大小分布分析/
8.10.3 震源深度分布分析/
8.10.4 震中坐標分布分析/
8.10.5 中等地震分布分析/
8.11 本章小結/
第9章 Structured Streaming結構化流處理/
9.1 編程模型/
9.1.1 基本概念/
9.1.2 事件時間和延遲數據/
9.1.3 容錯語義/
9.2 流式DataFrame的創(chuàng)建/
9.2.1 通過文件源創(chuàng)建/
9.2.2 通過Socket源創(chuàng)建/
9.2.3 通過Rate源創(chuàng)建/
9.2.4 通過Kafka源創(chuàng)建/
9.3 流式DataFrame的操作/
9.3.1 事件時間窗口/
9.3.2 處理延遲數據和水印/
9.3.3 連接操作/
9.3.4 消除重復數據/
9.3.5 不支持的操作/
9.4 啟動流式處理查詢/
9.4.1 輸出模式/
9.4.2 輸出接收器/
9.4.3 觸發(fā)器/
9.5 管理流式查詢/
9.6 監(jiān)控流式查詢/
9.7【實戰(zhàn)案例】氣象數據處理分析/
9.7.1 數據集成/
9.7.2 云量分布分析/
9.7.3 氣溫分布分析/
9.7.4 降水量分布分析/
9.8 本章小結/
第10章 Spark機器學習庫MLlib/
10.1 機器學習介紹/
10.1.1 基本概念/
10.1.2 評估指標/
10.1.3 主要過程/
10.1.4 基于大數據的機器學習/
10.2 MLlib介紹/
10.3 數據預處理/
10.3.1 缺失值處理/
10.3.2 無量綱化處理/
10.3.3 特征數據處理/
10.4 特征提取和轉換/
10.5 回歸算法介紹/
10.5.1 線性回歸算法介紹/
10.5.2 回歸樹算法介紹/
10.6 分類算法介紹/
10.6.1 邏輯回歸算法介紹/
10.6.2 支持向量機算法介紹/
10.7聚類算法介紹/
10.7.1K-means算法介紹/
10.7.2高斯混合模型介紹/
10.8【實戰(zhàn)案例】信用卡欺詐數據分析/
10.8.1 數據預覽/
10.8.2 機器學習訓練/
10.9 本章小結/
第11章 綜合實戰(zhàn):基于協(xié)同過濾的圖書推薦系統(tǒng)/
11.1 項目介紹/
11.2 協(xié)同過濾算法/
11.2.1 協(xié)同過濾算法介紹/
11.2.2 相似度度量/
11.2.3 交替最小二乘法/
11.3 項目實現/
11.3.1 數據集成/
11.3.2 數據分析/
11.3.3 結果導出/
11.4 數據可視化/
11.4.1 Flask框架介紹/
11.4.2 推薦結果展示/
11.5 項目部署/
11.6 本章小結/
參考文獻/