本書以Spark大數據分析的常用技術與真實項目相結合的方式,深入淺出地介紹Spark大數據分析的重要內容。全書共8個項目,內容包括廣告流量檢測違規(guī)識別流程分析、Spark大數據環(huán)境安裝搭建、基于Hive實現廣告流量檢測數據存儲、基于Spark SQL實現廣告流量檢測數據探索分析、基于Spark SQL實現廣告流量檢測數據預處理、基于Spark MLlib實現廣告流量檢測違規(guī)識別模型構建與評估、基于Spark開發(fā)環(huán)境實現廣告流量檢測違規(guī)識別,以及基于TipDM大數據挖掘建模平臺實現廣告流量檢測違規(guī)識別。本書項目2~項目7都包含知識測試和技能測試,通過練習和操作實踐,讀者可鞏固所學的內容。
本書可以作為大數據分析相關課程的教材,也可以作為數據分析愛好者的自學用書。
落實立德樹人根本任務。本書每個項目都融入素質目標,教導學生遵紀守法,養(yǎng)成敬業(yè)、精益、專注、創(chuàng)新的工匠精神,樹立正確的職業(yè)觀念。
企業(yè)真實項目貫穿全書。本書通過一個企業(yè)真實項目,按照大數據分析的流程詳細地講解需求分析、數據存儲、數據探索分析、數據預處理、模型構建與評估以及模型應用等環(huán)節(jié)。
以項目為導向。本書項目均由項目背景、項目目標、目標分析、知識準備、項目實施、項目總結等構成,讓讀者對實際項目的流程有初步的認識。
將拓展與鞏固結合。本書每個項目(項目1、項目8除外)均包含技能拓展,用于講解項目中沒有涉及的知識,以豐富讀者的知識。在每個項目(項目1、項目8除外)的最后添加知識測試和技能測試,以幫助讀者鞏固所學知識,實現真正理解并應用所學知識。
鄭浩森,男,湛江幼兒師范?茖W校,數學系主任,大數據技術專業(yè)負責人,廣東省數學會理事、廣東省工業(yè)與應用數學學會理事會理事、廣東省現場統計學會理事、廣東省數學會高職高專分會常務理事,研究方向為智能計算技術,擔任大數據技術專業(yè)多門課程,主持或參與省部級課題多項,全國大學生數學建模(廣東省分賽)優(yōu)秀指導教師。 張良均,高級信息系統項目管理師,泰迪杯全國大學生數據挖掘競賽(www.tipdm.org)的發(fā)起人。華南師范大學、廣東工業(yè)大學兼職教授,廣東省工業(yè)與應用數學學會理事。兼有大型高科技企業(yè)和高校的工作經歷,主要從事大數據挖掘及其應用的策劃、研發(fā)及咨詢培訓。全國計算機技術與軟件專業(yè)技術資格(水平)考試繼續(xù)教育和CDA數據分析師培訓講師。發(fā)表數據挖掘相關論文數二十余篇,已取得國家發(fā)明專利12項,主編圖書《神經網絡實用教程》、《數據挖掘:實用案例分析》、《MATLAB數據分析與挖掘實戰(zhàn)》等9本暢銷圖書,主持并完成科技項目9項。獲得SAS、SPSS數據挖掘認證及Hadoop開發(fā)工程師證書,具有電力、電信、銀行、制造企業(yè)、電子商務和電子政務的項目經驗和行業(yè)背景。
項目1 廣告流量檢測違規(guī)識別流程分析 1
【教學目標】 1
【思維導圖】 1
【項目背景】 2
【項目目標】 2
【目標分析】 2
【知識準備】 2
一、認識大數據 2
(一)大數據的概念 3
(二)大數據的特征 3
二、認識大數據分析 4
(一)大數據分析的概念 4
(二)大數據分析的流程 5
(三)大數據分析的工具 6
【項目實施】 7
任務一 了解正常的廣告投放流程 7
任務二 了解廣告流量違規(guī)現狀 8
任務三 了解廣告流量常見違規(guī)方式 9
任務四 了解識別虛假流量的常見維度 9
(一)基本屬性 9
(二)產品參與度 10
任務五 廣告流量檢測違規(guī)識別流程分析 11
【項目總結】 12
項目2 Spark大數據環(huán)境安裝搭建 13
【教學目標】 13
【思維導圖】 13
【項目背景】 14
【項目目標】 14
【目標分析】 14
【知識準備】 14
一、Hadoop大數據框架 14
(一)Hadoop簡介 14
(二)Hadoop的發(fā)展歷程 15
(三)Hadoop的特點 16
(四)Hadoop生態(tài)系統 16
(五)Hadoop的應用場景 17
二、Hive數據倉庫工具 18
(一)Hive簡介 18
(二)Hive的特點 18
(三)Hive的應用場景 19
(四)Hive與關系數據庫的區(qū)別 19
三、Spark分布式計算框架 20
(一)Spark簡介 20
(二)Spark的發(fā)展歷程 21
(三)Spark的特點 21
(四)Spark生態(tài)系統 23
(五)Spark的應用場景 24
【項目實施】 24
任務一 安裝搭建Hadoop集群 24
(一)創(chuàng)建Linux虛擬機 26
(二)設置固定IP地址 31
(三)遠程連接虛擬機 33
(四)配置本地yum源及安裝常用軟件 36
(五)在Linux系統下安裝Java 40
(六)修改配置文件 41
(七)克隆虛擬機 45
(八)配置SSH免密登錄 48
(九)配置時間同步服務 49
(十)添加地址映射 52
(十一)啟動關閉集群 52
任務二 安裝搭建Hive 54
(一)安裝MySQL 54
(二)下載和安裝Hive 59
(三)修改Hive配置文件 59
(四)設置環(huán)境變量 60
(五)初始化元數據庫與啟動Hive 61
任務三 安裝搭建Spark集群 62
(一)解壓并配置Spark集群 62
(二)啟動Spark集群 63
(三)查看Spark監(jiān)控服務 64
【項目總結】 65
【技能拓展】 65
【知識測試】 66
【技能測試】 67
測試 修改master虛擬機的IP地址 67
項目3 基于Hive實現廣告流量檢測數據存儲 69
【教學目標】 69
【思維導圖】 70
【項目背景】 70
【項目目標】 71
【目標分析】 71
【知識準備】 71
一、了解Hive中的數據類型 71
二、創(chuàng)建與管理數據庫 72
(一)創(chuàng)建數據庫語法格式 72
(二)刪除數據庫語法格式 73
(三)更改數據庫語法格式 74
(四)使用數據庫語法格式 74
三、創(chuàng)建表 74
(一)創(chuàng)建內部表 76
(二)創(chuàng)建外部表 77
(三)創(chuàng)建分區(qū)表 79
(四)創(chuàng)建桶表 79
四、修改表 80
五、導入數據至Hive表 83
(一)將文件系統中的數據導入Hive表 83
(二)通過查詢語句向表中插入數據 84
六、導出Hive表中的數據 87
(一)將Hive表中的數據導出至本地文件系統 87
(二)將Hive表中的數據導出至HDFS 87
【項目實施】 88
任務一 創(chuàng)建數據表 88
(一)數據字段說明 88
(二)創(chuàng)建Hive表 89
任務二 導入數據至Hive表 92
【項目總結】 93
【技能拓展】 93
【知識測試】 95
【技能測試】 96
測試 某連鎖咖啡店經營情況數據存儲 96
項目4 基于Spark SQL實現廣告流量檢測數據探索分析 98
【教學目標】 98
【思維導圖】 99
【項目背景】 99
【項目目標】 99
【目標分析】 100
【知識準備】 100
一、認識Spark SQL框架 100
(一)Spark SQL簡介 100
(二)配置Spark SQL CLI 102
(三)Spark SQL與Shell交互 103
二、創(chuàng)建DataFrame對象 103
(一)通過結構化數據文件創(chuàng)建DataFrame 104
(二)通過外部數據庫創(chuàng)建DataFrame 105
(三)通過RDD創(chuàng)建DataFrame 105
(四)通過Hive表創(chuàng)建DataFrame 106
三、查看DataFrame數據 107
(一)printSchema():輸出數據模式 108
(二)show():查看數據 108
(三)first()、head()、take()、takeAsList():獲取若干行記錄 109
四、掌握DataFrame行列表查詢操作 110
(一)條件查詢 111
(二)查詢指定字段的數據信息 111
(三)查詢指定行數的數據 113
(四)排序查詢 114
(五)分組查詢 115
【項目實施】 116
任務一 讀取數據創(chuàng)建DataFrame對象 116
任務二 簡單查詢DataFrame數據 116
(一)查詢數據記錄數 116
(二)查詢數據缺失值 117
任務三 探索分析日流量特征 119
任務四 探索分析IP地址的訪問次數特征 120
任務五 探索分析虛假流量數據特征 120
【項目總結】 124
【技能拓展】 124
【知識測試】 125
【技能測試】 126
測試1 使用DataFrame查詢操作分析員工基本信息 126
測試2 使用DataFrame查詢操作分析圖書信息 127
項目5 基于Spark SQL實現廣告流量檢測數據預處理 129
【教學目標】 129
【思維導圖】 130
【項目背景】 130
【項目目標】 130
【目標分析】 130
【知識準備】 131
一、掌握DataFrame行列表增、刪操作 131
(一)新增數據列 131
(二)刪除數據列 132
二、創(chuàng)建與使用用戶自定義函數 133
三、掌握DataFrame表聯合操作 135
(一)5種join()方法 135
(二)根據特定字段進行表聯合操作 136
(三)指定類型進行表聯合操作 137
(四)使用Column類型進行表聯合操作 137
四、掌握DataFrame行列表輸出操作 138
(一)保存為文件 138
(二)保存為持久化的表 139
【項目實施】 140
任務一 使用drop語句刪除數據 140
任務二 自定義函數構建關鍵特征 140
(一)劃分時間區(qū)間 141
(二)構建關鍵特征并保存至Hive表中 142
任務三 保存DataFrame數據至Hive表中 143
【項目總結】 144
【技能拓展】 144
【知識測試】 145
【技能測試】 146
測試 基于Hive的人力資源系統數據處理 146
項目6 基于Spark MLlib實現廣告流量檢測違規(guī)識別模型構建與評估 149
【教學目標】 149
【思維導圖】 150
【項目背景】 150
【項目目標】 151
【目標分析】 151
【知識準備】 151
一、認識Spark MLlib算法庫 151
(一)了解機器學習算法 152
(二)Spark MLlib簡介 154
二、掌握Spark MLlib中的算法與算法包 155
(一)數據類型 155
(二)基本統計 155
(三)管道 157
(四)特征提取 158
(五)特征處理 160
(六)回歸 163
(七)分類 165
(八)聚類 169
(九)關聯規(guī)則 170
(十)智能推薦 171
三、掌握Spark MLlib的評估器與模型評估 173
【項目實施】 175
任務一 數據歸一化 175
任務二 構建建模樣本 176
任務三 使用spark.ml.classification模塊構建分類模型 176
(一)使用邏輯回歸算法實現廣告流量檢測違規(guī)識別 176
(二)使用隨機森林算法實現廣告流量檢測違規(guī)識別 177
任務四 使用評估器實現模型評估 178
(一)模型評估 178
(二)模型評估結果對比 179
【項目總結】 179
【技能拓展】 179
【知識測試】 181
【技能測試】 182
測試 基于Spark MLlib實現新聞分類 182
項目7 基于Spark開發(fā)環(huán)境實現廣告流量檢測違規(guī)識別 184
【教學目標】 184
【思維導圖】 184
【項目背景】 185
【項目目標】 185
【目標分析】 185
【知識準備】 185
一、搭建Java開發(fā)環(huán)境 185
(一)安裝JDK 8 185
(二)設置環(huán)境變量 187
二、搭建Spark開發(fā)環(huán)境 189
(一)下載與安裝IntelliJ IDEA 189
(二)Scala插件安裝與使用 192
(三)在IntelliJ IDEA中配置Spark運行環(huán)境 196
(四)運行Spark程序 198
【項目實施】 206
任務一 開發(fā)環(huán)境下實現流量數據違規(guī)識別 206
(一)集群連接參數設置 206
(二)封裝代碼 207
(三)運行Spark程序 210
任務二 模型應用 210
【項目總結】 211
【技能拓展】 212
【知識測試】 214
【技能測試】 215
測試 農產品銷售分析 215
項目8 基于TipDM大數據挖掘建模平臺實現廣告流量檢測違規(guī)識別 217
【教學目標】 217
【思維導圖】 217
【項目背景】 218
【項目目標】 218
【目標分析】 218
【知識準備】 218
平臺簡介 218
(一)共享庫 219
(二)數據連接 219
(三)數據集 220
(四)我的工程 220
(五)個人組件 223
【項目實施】 224
任務 快速構建廣告流量檢測違規(guī)識別工程 224
(一)數據源配置 225
(二)數據處理 227
(三)模型構建與評估 232
【項目總結】 235
參考文獻 236