本書以Python作為開發(fā)語言,系統(tǒng)介紹PySpark開發(fā)環(huán)境搭建流程及基于PySpark進行大數(shù)據分析的 相關知識。本書條理清晰、重點突出,理論敘述循序漸進、由淺入深。本書共7章,第1?5章包括PySpark 大數(shù)據分析概述、PySpark安裝配置、基于PySpark的DataFrame操作、基于PySpark的流式數(shù)據處理、 基于PySpark的機器學習庫,內容介紹注重理論與實踐相結合,通過典型示例強化PySpark在大數(shù)據分析 中的實際應用;第6、7章通過基于PySpark的網絡招聘信息的職業(yè)類型劃分和基于PySpark的信用貸款 風險分析兩個完整的案例實戰(zhàn),結合前5章的PySpark編程知識,實現(xiàn)完整的大數(shù)據分析過程。本書大部 分章包含實訓和課后習題,讀者通過練習和操作實踐,能夠鞏固所學的內容。
本書可作為高校數(shù)據科學或大數(shù)據相關專業(yè)的教材,也可作為機器學習愛好者的自學用書。
1.理論敘述由淺入深,循序漸進,表達通俗易懂。本書的知識點章節(jié)從基本概念入手,介紹相關的基礎理論,并結合介紹的知識點進行操作實踐,再通過應用實例介紹如何運用具體方法解決實際問題。
2.強化基礎,突出知識的應用性。結合高校教學特點和學生的情況,突出PySpark大數(shù)據分析的重點內容,強調PySpark在實際問題中的應用性,充分體現(xiàn)了理論知識與應用的緊密結合。
3.從實踐出發(fā),重點突出可操作性。本書從構建PySpark的開發(fā)環(huán)境入手,詳細介紹了單機模式的PySpark開發(fā)環(huán)境搭建(基于Windows系統(tǒng)搭建,搭建過程簡單,易于操作)和分布式模式的PySpark開發(fā)環(huán)境搭建(基于Linux系統(tǒng)搭建,貼近實際應用場景,處理高效),幫助讀者構建一個可操作的實踐環(huán)境,實踐本書各章節(jié)的內容。且本書大部分章節(jié)附有實訓和課后習題,便于讀者進行上機實驗,鞏固所學知識,真正理解并應用所學知識。
4.通過典型的案例完整展示PySpark數(shù)據分析的過程,強化知識的實際應用。本書最后介紹了兩個案例,以應用為導向,從需求分析入手,再設計解決方案,最終運用所需知識實現(xiàn)基于PySpark的數(shù)據分析過程。
5.體現(xiàn)思政育人。本書不僅注重培養(yǎng)學生分析處理數(shù)據的能力,運用數(shù)據分析理論與方法解決實際問題的實踐能力;同時注重課程內容與思政教育的有機融合,潛移默化中引領學生樹立和踐行社會主義核心價值觀,建立正確的三觀,培養(yǎng)擁有正確政治方向的四有青年。
戴剛,重慶大學計算機科學與技術博士,美國匹茲堡大學訪問學者,重慶交通大學經濟與管理學院副教授,碩士生導師。主持1項教育部產學研合作項目,主研國家自然科學基金2項,國家科技支持計劃1項目,中國移動(重慶分公司)科技公關項目1項,省部級科研項目2項,在國際期刊、國際會議及國內權威學術期刊發(fā)辮學術論文7篇。熟悉Java、Python、大數(shù)據及相關軟件架構,具有豐富的軟件開發(fā)經驗。從事教育教學工作十多年,有扎實的專業(yè)素養(yǎng)和豐富的教學經驗。
第 1章PySpark大數(shù)據分析概述 1
1.1 大數(shù)據分析概述 1
1.1.1 大數(shù)據的概念 2
1.1.2 大數(shù)據分析的概念 3
1.1.3 大數(shù)據分析的流程 4
1.1.4 大數(shù)據分析的應用場景 6
1.1.5 大數(shù)據技術體系 6
1.2 Spark大數(shù)據技術框架 10
1.2.1 Spark 簡介 10
1.2.2 Spark 特點 11
1.2.3 Spark運行架構與流程 11
1.2.4 Spark RDD 14
1.2.5 Spark 生態(tài)圈 20
1.3 PySpark大數(shù)據分析 21
1.3.1 PySpark 簡介 21
1.3.2 PySpark 子模塊 22
小結 25
課后習題 26
第 2章 PySpark安裝配置 27
2.1 搭建單機模式的PySpark開發(fā)
環(huán)境 28
2.1.1 安裝 JDK 28
2.1.2 安裝 Anaconda 28
2.1.3 安裝 Hadoop 30
2.1.4 安裝 MySQL 36
2.1.5 安裝 Hive 37
2.1.6 配置 PySpark 模塊 43
2.1.7 運行 Jupyter Notebook 44
2.2 搭建分布式模式的PySpark開發(fā)
環(huán)境 45
2.2.1 安裝配置虛擬機 46
2.2.2 安裝 Java 53
2.2.3 搭建Hadoop分布式集群 58
2.2.4 安裝MySQL數(shù)據庫 62
2.2.5 安裝Hive數(shù)據倉庫工具 63
2.2.6 搭建Spark完全分布式集群 66
2.2.7 安裝 PyCham 69
2.2.8 安裝Python解釋器及PySpark 模塊 69
2.3 Python函數(shù)式編程 69
2.3.1 Python常用數(shù)據結構 70
2.3.2 Python函數(shù)式編程基礎 75
小結 76
課后習題 76
第 3 章 基于 PySpark 的 DataFrame 操作 78
3.1 Spark SQL 概述 78
3.1.1 Spark SQL起源與發(fā)展歷程 79
3.1.2 Spark SQL 主要功能 79
3.1.3 Spark SQL數(shù)據核心抽象 DataFrame 80
3.2 pyspark.sql 模塊 82
3.2.1 pyspark. sql 模塊簡介 82
3.2.2 pyspark. sql 模塊核心類 83
3.3 DataFrame 基礎操作 85
3.3.1 創(chuàng)建 DataFrame 對象 86
332 DataFrame 操作 93
3.3.3 DataFrame 輸出操作 113
小結 114
實訓 114
實訓1網站搜索熱詞統(tǒng)計分析 114
實訓2大數(shù)據崗位招聘信息統(tǒng)計分析 …115
課后習題 116
第4章 基于PySpark的流式數(shù)據
處理 118
4.1 Spark Streaming 概述 119
4.1.1 流計算簡介 119
4.1.2 Spark Streaming 基本概念 121
4.1.3 Spark Streaming 工作原理 121
4.1.4 Spark Streaming 運行機制 122
4.2 pyspark.streaming 模塊 123
4.2.1 pyspark. streaming 模塊簡介 123
4.2.2 pyspark. streaming 模塊核心類 124
4.2.3 DStream 基礎操作 126
4.3 Structured Streaming 結構化流 處理 146
4.3.1 Structured Streaming 概述 146
4.3.2 Structured Streaming 編程模型 147
4.3.3 Structured Streaming 基礎操作 148
4.3.4 Structured Streaming 編程步驟 152
小結 155
實訓 155
實訓1使用Spark Streaming實現(xiàn)菜品價格
實時計算 155
實訓2使用Spark Streaming實時判別車輛 所屬地 156
課后習題 156
第5章 基于PySpark的機器
學習庫 158
5.1 MLlib 算法 159
5.1.1 機器學習 159
5.1.2 MLlib 159
5.1.3 pyspark.ml 模塊 159
5.2 使用pyspark.ml模塊的轉換器處理
和轉換數(shù)據 162
5.2.1 數(shù)據加載及數(shù)據集劃分 162
5.2.2 數(shù)據降維 164
5.2.3 數(shù)據標準化 166
5.2.4 數(shù)據類型轉換 171
5.3 pyspark.ml模塊的評估器和模型 評估 175
5.3.1 使用PySpark構建并評估分類 模型 175
5.3.2 使用PySpark構建并評估回歸 模型 182
5.3.3 使用PySpark構建并評估聚類 模型 186
5.3.4 使用PySpark構建并評估智能推薦
模型 189
小結 195
實訓 195
實訓1使用隨機森林模型預測是否批準 用戶申請 195
實訓2使用回歸模型實現(xiàn)房價預測………196
課后習題 197
第6章 案例分析:基于PySpark的網絡 招聘信息的職業(yè)類型劃分 ……199
6.1 需求與架構分析 200
6.1.1 業(yè)務需求分析與技術選型 200
6.1.2 系統(tǒng)架構分析 200
6.2 數(shù)據探索 201
6.2.1 數(shù)據說明 202
6.2.2 數(shù)據讀取 202
6.2.3 重復數(shù)據與空值探索 204
6.2.4 異常數(shù)據探索 205
6.3 數(shù)據預處理 207
6.3.1 數(shù)據清洗 207
6.3.2 中文分詞與去停用詞 208
6.3.3 詞特征向量化 210
6.4 模型構建與評估 213
6.4.1 LDA算法簡介 214
6.4.2 LDA模型構建與評估 215
6.4.3 構建LDA模型 217
6.5 制作詞云圖 220
小結 225
第7章 案例分析:基于PySpark的
信用貸款風險分析 226
7.1 需求與架構分析 227
7.1.1 業(yè)務需求分析 227
7.1.2 系統(tǒng)架構分析 227
7.2 數(shù)據探索 228
7.2.1 數(shù)據說明 228
7.2.2 建立數(shù)據倉庫并導入數(shù)據 230
7.2.3 用戶信息完善情況與逾期率的關系
探索 233
7.2.4 用戶信息修改情況與逾期率的關系
探索 236
7.2.5 用戶借款月份與逾期率的關系
探索 240
7.3 數(shù)據預處理 243
7.3.1 計算用戶信息缺失個數(shù)及借款月份
構建新特征 243
7.3.2 用戶更新信息重建 245
7.3.3 用戶登錄信息重建 250
7.3.4 分類數(shù)據預處理 255
7.3.5 字符串字段編碼處理 259
7.3.6 分類數(shù)據重編碼 263
7.3.7 缺失值處理 265
7.4 模型構建與評估 267
7.4.1 了解 GBTs 算法 267
7.4.2 構建 GBTs 模型 268
7.4.3 評估 GBTs 模型 271
7.5 部署和提交PySpark應用程序…271
7.5.1 打包PySpark應用程序 271
7.5.2 提交PySpark應用程序 274
小結 275
參考文獻 276