Spark大數(shù)據(jù)技術與應用(Scala版)——基于Hadoop 3.3+Spark 3.5
定 價:59.8 元
- 作者:李新輝
- 出版時間:2026/1/1
- ISBN:9787121515477
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:308
- 紙張:
- 版次:01
- 開本:16開
Spark 是業(yè)界主流的大數(shù)據(jù)計算框架,擁有強大的分布式計算能力,能夠充分利用大量的廉價機器進行大數(shù)據(jù)的處理工作,同時又具備較高的性能,這使得它在各大互聯(lián)網(wǎng)企業(yè)中有著廣泛的應用。本書通過一系列通俗易懂的數(shù)據(jù)處理實例展開,詳細闡述Spark大數(shù)據(jù)平臺與環(huán)境搭建、Spark RDD 離線數(shù)據(jù)計算、Spark SQL離線數(shù)據(jù)處理、Spark Streaming流數(shù)據(jù)計算等一系列常見的大數(shù)據(jù)處理技術,在此基礎上對Spark框架的核心概念及技術原理進行詳細分析,最后通過一個綜合實例展示Spark離線數(shù)據(jù)處理的具體應用與部署。本書將Scala基礎知識的介紹融入實例中,并未像傳統(tǒng)做法那樣設置單獨的章節(jié),方便讀者按需學習,以減輕學習一種新編程語言的壓力。全書各環(huán)節(jié)遵循“做中學”的設計理念,內(nèi)容編排貼近初學者的認知規(guī)律,從細小簡單的實例入手,輔以大量配圖,對學習過程中涉及的枯燥數(shù)據(jù)、抽象概念和復雜原理予以圖示化的解釋說明,還安排了大量單元訓練,以達到教學過程中的“學以致用”目的,內(nèi)容編寫以語言淺顯易懂、技術體系清晰、邏輯銜接合理、知識內(nèi)容夠用為原則。在最后安排的數(shù)據(jù)處理綜合實例中,分別從需求分析、技術準備、數(shù)據(jù)清洗、需求實現(xiàn)、數(shù)據(jù)可視化等幾個關鍵環(huán)節(jié)展開敘述,便于讀者對Spark大數(shù)據(jù)項目的整體開發(fā)流程有一個實際的體會。
李新輝,男,碩士,畢業(yè)于南昌大學計算機應用技術專業(yè),2006年開始從事計算機相關課程的教育教學,從事大數(shù)學技術專業(yè)的課程教學工作。
第1章 Spark大數(shù)據(jù)平臺與環(huán)境搭建 1
1.1 引言 2
1.2 Spark大數(shù)據(jù)平臺介紹 2
1.2.1 Spark是什么 2
1.2.2 Spark與大數(shù)據(jù)的應用場景 4
1.2.3 Spark編程環(huán)境(Scala) 5
1.2.4 Spark應用程序基本原理 7
1.3 Spark大數(shù)據(jù)環(huán)境搭建 8
1.3.1 Linux操作系統(tǒng)安裝和配置 8
1.Ubuntu虛擬機的安裝 8
2.Ubuntu基本配置 19
3.vi編輯器 22
4.MobaXterm遠程連接工具 24
1.3.2 Hadoop偽分布式集群環(huán)境搭建 28
1.JDK的安裝與配置 28
2.Linux免密登錄 31
3.Hadoop的安裝 33
4.HDFS的配置 35
5.YARN的配置 38
6.HDFS和YARN的測試 39
1.3.3 Spark單機運行環(huán)境搭建 42
1.Spark的安裝與配置 42
2.SparkShell交互式編程環(huán)境 44
3.Spark框架的目錄結構 46
1.4 Scala核心語法概覽 47
1.5 單元訓練 50
第2章 Spark RDD離線數(shù)據(jù)計算 51
2.1 引言 52
2.2 RDD基本原理 52
2.3 RDD編程模型 54
2.4 Spark RDD常用操作 57
2.4.1 RDD的創(chuàng)建 57
1.通過集合元素創(chuàng)建RDD 57
2.通過文本文件創(chuàng)建RDD 60
2.4.2 RDD的轉換操作 64
1.map數(shù)據(jù)轉換 64
2.flatMap數(shù)據(jù)轉換 70
3.filter數(shù)據(jù)篩選 72
4.sortBy數(shù)據(jù)排序 73
5.distinct數(shù)據(jù)去重 75
6.union數(shù)據(jù)合并 76
7.intersection數(shù)據(jù)交集 77
8.subtract數(shù)據(jù)差集 78
9.groupBy數(shù)據(jù)分組 79
10.groupByKey數(shù)據(jù)分組 80
11.reduceByKey數(shù)據(jù)歸并 81
12.sortByKey數(shù)據(jù)排序 84
13.keys和values操作 85
14.mapValues和flatMapValues操作 86
2.4.3 RDD的行動操作 88
1.collect操作 88
2.take操作 89
3.first操作 90
4.count/countByValue操作 90
5.max/min/sum/mean操作 91
2.5 Spark RDD數(shù)據(jù)計算實例 91
2.5.1 詞頻統(tǒng)計實例 91
2.5.2 基本TopN問題實例 94
2.5.3 用戶消費數(shù)據(jù)處理實例 98
2.6 Spark的文件讀/寫 101
2.6.1 文本文件的讀/寫 101
1.textFile讀取文本數(shù)據(jù) 101
2.saveAsTextFile保存到文本文件中 102
2.6.2 SequenceFile文件的讀/寫 104
2.7 單元訓練 105
第3章 Spark SQL離線數(shù)據(jù)處理 107
3.1 引言 108
3.2 DataFrame基本原理 108
3.3 Spark SQL常用操作 109
3.3.1 DataFrame的基本創(chuàng)建 109
1.使用集合創(chuàng)建DataFrame 109
2.使用CSV文件創(chuàng)建DataFrame 115
3.3.2 DataFrame的查看 117
3.3.3 DataFrame的數(shù)據(jù)操作(DSL) 121
1.DataFrame的數(shù)據(jù)查詢 122
2.DataFrame的數(shù)據(jù)處理 128
3.3.4 DataFrame的數(shù)據(jù)操作(SQL) 135
1.DataFrame視圖表的創(chuàng)建 136
2.DataFrame視圖表的SQL查詢 138
3.4 Spark SQL數(shù)據(jù)處理實例 147
3.4.1 人口信息統(tǒng)計實例 147
3.4.2 電影評分數(shù)據(jù)分析實例 150
3.5 DataFrame創(chuàng)建和保存 153
3.5.1 創(chuàng)建DataFrame 154
1.通過JSON文件創(chuàng)建DataFrame 154
2.通過Parquet文件創(chuàng)建DataFrame 155
3.5.2 保存DataFrame 155
3.6 RDD/DataFrame/Dataset類型轉換 156
3.7 單元訓練 164
第4章 Spark Streaming流數(shù)據(jù)計算 167
4.1 引言 167
4.2 Spark Streaming基本原理 168
4.3 Spark Streaming詞頻統(tǒng)計 169
4.3.1 Netcat網(wǎng)絡工具測試 169
4.3.2 DStream詞頻統(tǒng)計 170
4.4 單元訓練 172
第5章 Spark編程進階 173
5.1 引言 174
5.2 搭建Spark應用開發(fā)環(huán)境 174
5.2.1 Scala編程環(huán)境 174
5.2.2 IntelliJ IDEA集成開發(fā)環(huán)境 176
5.3 理解RDD 190
5.3.1 RDD的基本概念 190
5.3.2 RDD的分區(qū)機制 192
5.3.3 RDD的依賴關系 193
1.窄依賴 194
2.寬依賴 194
5.3.4 RDD的計算調度 195
1.Job 195
2.Stage 197
3.Task 198
5.4 RDD緩存機制 201
5.5 廣播變量和累加器 203
5.5.1 廣播變量 203
5.5.2 累加器 205
5.6 Spark生態(tài)和應用架構 208
5.6.1 Spark生態(tài)架構 208
1.Spark Core組件 208
2.Spark SQL組件 209
3.Spark Streaming組件 209
4.MLlib組件 209
5.GraphX組件 209
5.6.2 Spark應用架構 210
1.Spark應用的基本原理 210
2.Spark應用程序 210
3.Spark應用程序的運行方式 212
5.7 Spark集群和應用部署 213
5.7.1 Spark偽分布式集群的搭建 213
5.7.2 Spark應用部署模式 219
1.Local模式 219
2.Spark Standalone模式 219
3.Spark on YARN模式 219
5.7.3 Spark應用部署實例 220
1.Local模式 221
2.Spark Standalone模式 222
3.Spark on YARN模式 226
4.Spark應用的部署參數(shù) 230
5.8 單元訓練 232
第6章 Spark大數(shù)據(jù)分析項目實例 233
6.1 引言 233
6.2 CentOS7+JDK8虛擬機安裝 234
6.3 Hadoop+Spark分布式集群環(huán)境 239
6.3.1 Hadoop+Spark Standalone分布式集群環(huán)境搭建 239
6.3.2 Hadoop+Spark on YARN分布式集群環(huán)境搭建 243
6.4 Spark離線數(shù)據(jù)處理實例 248
6.4.1 需求分析 248
6.4.2 準備工作 250
1.數(shù)據(jù)清洗(Pandas) 250
2.窗口操作(Spark SQL) 258
3.數(shù)據(jù)可視化(pyecharts) 264
6.4.3 美妝商品訂單數(shù)據(jù)分析 268
1.創(chuàng)建Spark項目 268
2.訂單數(shù)據(jù)處理分析 274
3.結果數(shù)據(jù)保存 284
6.4.4 美妝商品訂單數(shù)據(jù)可視化 286
6.5 Spark數(shù)據(jù)分析實例部署 290
6.6 單元訓練 296