精通Spark數(shù)據(jù)科學(xué)
定 價(jià):109 元
- 作者:[美]安德魯·摩根(Andrew Morgan)
- 出版時(shí)間:2020/9/1
- ISBN:9787115541567
- 出 版 社:人民郵電出版社
- 中圖法分類:TP274
- 頁(yè)碼:430
- 紙張:
- 版次:01
- 開本:16開
Apache Spark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。這是一本專門介紹Spark的圖書,旨在教會(huì)讀者利用Spark構(gòu)建實(shí)用的數(shù)據(jù)科學(xué)解決方案。
本書內(nèi)容包括14章,由淺入深地介紹了數(shù)據(jù)科學(xué)生態(tài)系統(tǒng)、數(shù)據(jù)獲取、輸入格式與模式、探索性數(shù)據(jù)分析、利用Spark進(jìn)行地理分析、采集基于鏈接的外部數(shù)據(jù)、構(gòu)建社區(qū)、構(gòu)建推薦系統(tǒng)、新聞詞典和實(shí)時(shí)標(biāo)記系統(tǒng)、故事除重和變遷、情感分析中的異常檢測(cè)、趨勢(shì)演算、數(shù)據(jù)保護(hù)和可擴(kuò)展算法。
本書適合數(shù)據(jù)科學(xué)家以及對(duì)數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)感興趣的讀者閱讀,需要讀者具備數(shù)據(jù)科學(xué)相關(guān)的基礎(chǔ)知識(shí),并通過閱讀本書進(jìn)一步提升Spark運(yùn)用能力,從而創(chuàng)建出高效且實(shí)用的數(shù)據(jù)科學(xué)解決方案。
1.本書采用 Spark 2.0,并結(jié)合 Scala 2.11、Maven 和 Hadoop;
2.案例豐富:讀者將基于一系列典型的案例,學(xué)習(xí)Spark在構(gòu)建商業(yè)級(jí)數(shù)據(jù)科學(xué)解決方案中的應(yīng)用;
3.作者是數(shù)據(jù)戰(zhàn)略及其執(zhí)行方面的專家,擁有多年的商業(yè)經(jīng)驗(yàn),為讀者呈現(xiàn)了一個(gè)真實(shí)的、令人興奮的數(shù)據(jù)科學(xué)世界;
3.提供配套代碼。
安德魯·摩根(Andrew Morgan)是數(shù)據(jù)戰(zhàn)略及其執(zhí)行方面的專家,在支持技術(shù)、系統(tǒng)架構(gòu)和實(shí)現(xiàn)數(shù)據(jù)科學(xué)方面擁有豐富的經(jīng)驗(yàn)。他在數(shù)據(jù)行業(yè)擁有20多年的經(jīng)驗(yàn),曾為一些久負(fù)盛名的公司及其全球客戶設(shè)計(jì)系統(tǒng)——通常是大型、復(fù)雜和國(guó)際性的項(xiàng)目。2013年,他創(chuàng)辦了數(shù)據(jù)科學(xué)和大數(shù)據(jù)工程咨詢公司ByteSumo,目前在與歐洲和美國(guó)的客戶進(jìn)行合作。Andrew是一位活躍的數(shù)據(jù)科學(xué)家,也是趨勢(shì)演算(TrendCalculus)算法的發(fā)明者。該算法是他為自己的研究項(xiàng)目而開發(fā)的,該項(xiàng)目旨在研究基于機(jī)器學(xué)習(xí)的長(zhǎng)期預(yù)測(cè),這些預(yù)測(cè)可以在不斷變化的文化、地緣政治和經(jīng)濟(jì)趨勢(shì)中發(fā)現(xiàn)規(guī)律。他還是Hadoop Summit EU數(shù)據(jù)科學(xué)委員會(huì)的成員,并在許多會(huì)議上就各種數(shù)據(jù)主題發(fā)表過演講。他也活躍于他的居住地倫敦的數(shù)據(jù)科學(xué)和大數(shù)據(jù)社區(qū)。
安托萬·阿門德(Antoine Amend)是一位對(duì)大數(shù)據(jù)工程和可擴(kuò)展計(jì)算充滿熱情的數(shù)據(jù)科學(xué)家。這本書的主題是“折騰”天文數(shù)字量級(jí)的非結(jié)構(gòu)化數(shù)據(jù)以獲得新的見解,這主要源于Antoine的理論物理學(xué)背景。他于2008年畢業(yè)并獲得天體物理學(xué)碩士學(xué)位。在Hadoop的早期階段,在大數(shù)據(jù)的概念普及之前,他曾在瑞士的一家大型咨詢公司工作。從那時(shí)起,他就開始接觸大數(shù)據(jù)技術(shù),F(xiàn)在他在巴克萊銀行擔(dān)任網(wǎng)絡(luò)安全數(shù)據(jù)科學(xué)部門的主管。通過將科學(xué)方法與核心IT技能相結(jié)合,Antoine連續(xù)兩年獲得了在得克薩斯州奧斯汀舉行的大數(shù)據(jù)世界錦標(biāo)賽決賽資格。他在2014年和2015年都名列前12位(超過2 000多名競(jìng)爭(zhēng)對(duì)手),這兩次比賽中他還使用了本書介紹的方法和技術(shù)贏得了創(chuàng)新獎(jiǎng)。
大衛(wèi)·喬治(David George)是一位杰出的分布式計(jì)算專家,擁有超過15年的數(shù)據(jù)系統(tǒng)從業(yè)經(jīng)驗(yàn),主要服務(wù)于全球聞名的IT咨詢機(jī)構(gòu)和品牌。他很早以前就開始使用Hadoop核心技術(shù),并做過大規(guī)模的實(shí)施。David總是采用務(wù)實(shí)的方法進(jìn)行軟件設(shè)計(jì),并重視簡(jiǎn)約中的優(yōu)雅。
如今,他繼續(xù)作為首席工程師為金融行業(yè)客戶設(shè)計(jì)可擴(kuò)展的應(yīng)用,并滿足一些較為嚴(yán)苛的需求。他的新項(xiàng)目側(cè)重于采用先進(jìn)的人工智能技術(shù)來提高知識(shí)產(chǎn)業(yè)的自動(dòng)化水平。
馬修·哈利特(Matthew Hallett)是一名軟件工程師和計(jì)算機(jī)科學(xué)家,擁有超過15年的從業(yè)經(jīng)驗(yàn)。他是一名面向?qū)ο蟮摹皩<壹?jí)程序員”和系統(tǒng)工程師,擁有豐富的底層編程范式知識(shí)。在過去的幾年里,他在Hadoop和關(guān)鍵業(yè)務(wù)環(huán)境中的分布式編程方面積累了豐富的專業(yè)知識(shí),這些環(huán)境由數(shù)千節(jié)點(diǎn)的數(shù)據(jù)中心組成。Matthew在分布式算法和分布式計(jì)算體系結(jié)構(gòu)的實(shí)施方面擁有多種語(yǔ)言的咨詢經(jīng)驗(yàn),目前是“四大審計(jì)公司”數(shù)據(jù)科學(xué)與工程團(tuán)隊(duì)的數(shù)據(jù)工程師顧問。
第 1章 數(shù)據(jù)科學(xué)生態(tài)系統(tǒng) 1
1.1 大數(shù)據(jù)生態(tài)系統(tǒng)簡(jiǎn)介 1
1.1.1 數(shù)據(jù)管理 2
1.1.2 數(shù)據(jù)管理職責(zé) 2
1.1.3 合適的工具 4
1.2 數(shù)據(jù)架構(gòu) 4
1.2.1 數(shù)據(jù)采集 5
1.2.2 數(shù)據(jù)湖 6
1.2.3 數(shù)據(jù)科學(xué)平臺(tái) 7
1.2.4 數(shù)據(jù)訪問 8
1.3 數(shù)據(jù)處理技術(shù) 8
1.4 配套工具 10
1.4.1 Apache HDFS 10
1.4.2 亞馬遜S3 12
1.4.3 Apache Kafka 13
1.4.4 Apache Parquet 14
1.4.5 Apache Avro 15
1.4.6 Apache NiFi 16
1.4.7 Apache YARN 17
1.4.8 Apache Lucene 18
1.4.9 Kibana 19
1.4.10 Elasticsearch 20
1.4.11 Accumulo 21
1.5 小結(jié) 22
第 2章 數(shù)據(jù)獲取 23
2.1 數(shù)據(jù)管道 23
2.1.1 通用采集框架 24
2.1.2 GDELT數(shù)據(jù)集簡(jiǎn)介 25
2.2 內(nèi)容登記 32
2.2.1 選擇和更多選擇 32
2.2.2 隨流而行 32
2.2.3 元數(shù)據(jù)模型 33
2.2.4 Kibana儀表盤 35
2.3 質(zhì)量保證 36
2.3.1 案例1——基本質(zhì)量檢查,無爭(zhēng)用用戶 36
2.3.2 案例2——進(jìn)階質(zhì)量檢查,無爭(zhēng)用用戶 36
2.3.3 案例3——基本質(zhì)量檢查,50%使用率爭(zhēng)用用戶 37
2.4 小結(jié) 37
第3章 輸入格式與模式 39
3.1 結(jié)構(gòu)化的生活是美好的生活 40
3.2 GDELT維度建!40
3.3 加載數(shù)據(jù) 48
3.3.1 模式敏捷性 49
3.3.2 GKG ELT 51
3.4 Avro 54
3.4.1 Spark-Avro方法 55
3.4.2 教學(xué)方法 57
3.4.3 何時(shí)執(zhí)行Avro轉(zhuǎn)換 61
3.5 Apache Parquet 62
3.6 小結(jié) 63
第4章 探索性數(shù)據(jù)分析 64
4.1 問題、原則與規(guī)劃 65
4.1.1 理解EDA問題 65
4.1.2 設(shè)計(jì)原則 65
4.1.3 探索的總計(jì)劃 66
4.2 準(zhǔn)備工作 67
4.2.1 基于掩碼的數(shù)據(jù)剖析簡(jiǎn)介 67
4.2.2 字符類掩碼簡(jiǎn)介 71
4.2.3 構(gòu)建基于掩碼的剖析器 73
4.3 探索GDELT 86
4.4 小結(jié) 107
第5章 利用Spark進(jìn)行地理分析 108
5.1 GDELT和石油 108
5.1.1 GDELT事件 109
5.1.2 GDELT GKG 110
5.2 制訂行動(dòng)計(jì)劃 110
5.3 GeoMesa 111
5.3.1 安裝 112
5.3.2 GDELT采集 112
5.3.3 GeoMesa采集 113
5.3.4 GeoHash 117
5.3.5 GeoServer 120
5.4 計(jì)量油價(jià) 123
5.4.1 使用GeoMesa查詢API 123
5.4.2 數(shù)據(jù)準(zhǔn)備 125
5.4.3 機(jī)器學(xué)習(xí) 130
5.4.4 樸素貝葉斯 131
5.4.5 結(jié)果 132
5.4.6 分析 133
5.5 小結(jié) 134
第6章 采集基于鏈接的外部數(shù)據(jù) 135
6.1 構(gòu)建一個(gè)大規(guī)模的新聞掃描器 135
6.1.1 訪問Web內(nèi)容 136
6.1.2 與Spark集成 138
6.1.3 創(chuàng)建可擴(kuò)展的生產(chǎn)準(zhǔn)備庫(kù) 139
6.2 命名實(shí)體識(shí)別 142
6.2.1 Scala庫(kù) 143
6.2.2 NLP攻略 143
6.2.3 構(gòu)建可擴(kuò)展代碼 146
6.3 GIS查詢 148
6.3.1 GeoNames數(shù)據(jù)集 148
6.3.2 構(gòu)建高效的連接 149
6.3.3 內(nèi)容除重 153
6.4 名字除重 154
6.4.1 用Scalaz進(jìn)行函數(shù)式編程 155
6.4.2 簡(jiǎn)單清洗 158
6.4.3 DoubleMetaphone算法 158
6.5 新聞索引儀表板 160
6.6 小結(jié) 162
第7章 構(gòu)建社區(qū) 163
7.1 構(gòu)建一個(gè)人物圖譜 163
7.1.1 聯(lián)系鏈 164
7.1.2 從Elasticsearch中提取數(shù)據(jù) 166
7.2 使用Accumulo數(shù)據(jù)庫(kù) 168
7.2.1 設(shè)置Accumulo 168
7.2.2 單元級(jí)安全 169
7.2.3 迭代器 170
7.2.4 從Elasticsearch到Accumulo 170
7.2.5 從Accumulo讀取 173
7.2.6 AccumuloGraphxInputFormat和EdgeWritable 175
7.2.7 構(gòu)建圖 175
7.3 社區(qū)發(fā)現(xiàn)算法 177
7.3.1 Louvain算法 177
7.3.2 加權(quán)社區(qū)聚類 178
7.4 GDELT數(shù)據(jù)集 193
7.4.1 Bowie 效應(yīng) 194
7.4.2 較小的社區(qū) 195
7.4.3 使用Accumulo單元級(jí)的安全性 196
7.5 小結(jié) 197
第8章 構(gòu)建推薦系統(tǒng) 198
8.1 不同的方法 198
8.1.1 協(xié)同過濾 199
8.1.2 基于內(nèi)容的過濾 199
8.1.3 自定義的方法 199
8.2 信息不完整的數(shù)據(jù) 200
8.2.1 處理字節(jié) 200
8.2.2 創(chuàng)建可擴(kuò)展的代碼 203
8.2.3 從時(shí)域到頻域 204
8.3 構(gòu)建歌曲分析器 209
8.4 構(gòu)建一個(gè)推薦系統(tǒng) 214
8.4.1 PageRank算法 214
8.4.2 構(gòu)建個(gè)性化的播放列表 217
8.5 擴(kuò)大“蛋糕廠”規(guī)模 217
8.5.1 構(gòu)建播放列表服務(wù) 217
8.5.2 應(yīng)用Spark任務(wù)服務(wù)器 219
8.5.3 用戶界面 223
8.6 小結(jié) 224
第9章 新聞詞典和實(shí)時(shí)標(biāo)記系統(tǒng) 226
9.1 土耳其機(jī)器人 226
9.1.1 人類智能任務(wù) 227
9.1.2 引導(dǎo)分類模型 227
9.1.3 懶惰、急躁、傲慢 233
9.2 設(shè)計(jì)Spark Streaming應(yīng)用 234
9.2.1 兩個(gè)架構(gòu)的故事 234
9.2.2 Lambda架構(gòu)的價(jià)值 237
9.2.3 Kappa架構(gòu)的價(jià)值 239
9.3 消費(fèi)數(shù)據(jù)流 240
9.3.1 創(chuàng)建GDELT數(shù)據(jù)流 240
9.3.2 創(chuàng)建Twitter數(shù)據(jù)流 242
9.4 處理Twitter數(shù)據(jù) 243
9.4.1 提取URL和主題標(biāo)簽 244
9.4.2 保存流行的主題標(biāo)簽 245
9.4.3 擴(kuò)展縮短的URL 246
9.5 獲取HTML內(nèi)容 248
9.6 使用Elasticsearch作為緩存層 249
9.7 分類數(shù)據(jù) 252
9.7.1 訓(xùn)練樸素貝葉斯模型 253
9.7.2 確保線程安全 254
9.7.3 預(yù)測(cè)GDELT數(shù)據(jù) 255
9.8 Twitter土耳其機(jī)器人 256
9.9 小結(jié) 258
第 10章 故事除重和變遷 260
10.1 檢測(cè)近似重復(fù) 260
10.1.1 從散列開始第 一步 262
10.1.2 站在“互聯(lián)網(wǎng)巨人”的肩膀上 263
10.1.3 檢測(cè)GDELT中的近似重復(fù) 266
10.1.4 索引GDELT數(shù)據(jù)庫(kù) 271
10.2 構(gòu)建故事 275
10.2.1 構(gòu)建詞頻向量 275
10.2.2 維度災(zāi)難,數(shù)據(jù)科學(xué)之痛 277
10.2.3 優(yōu)化KMeans 278
10.3 故事變遷 281
10.3.1 平衡態(tài) 281
10.3.2 隨時(shí)間追蹤故事 283
10.3.3 構(gòu)建故事的關(guān)聯(lián) 290
10.4 小結(jié) 294
第 11章 情感分析中的異常檢測(cè) 295
11.1 在Twitter上追蹤美國(guó)大選 296
11.1.1 流式獲取數(shù)據(jù) 296
11.1.2 成批獲取數(shù)據(jù) 297
11.2 情感分析 300
11.2.1 格式化處理Twitter數(shù)據(jù) 300
11.2.2 使用斯坦福NLP 302
11.2.3 建立管道 304
11.3 使用Timely作為時(shí)間序列數(shù)據(jù)庫(kù) 306
11.3.1 存儲(chǔ)數(shù)據(jù) 306
11.3.2 使用Grafana可視化情感 309
11.4 Twitter與戈德溫(Godwin)點(diǎn) 311
11.4.1 學(xué)習(xí)環(huán)境 311
11.4.2 對(duì)模型進(jìn)行可視化 314
11.4.3 Word2Graph和戈德溫點(diǎn) 315
11.5 進(jìn)入檢測(cè)諷刺的一小步 320
11.5.1 構(gòu)建特征 320
11.5.2 檢測(cè)異常 324
11.6 小結(jié) 325
第 12章 趨勢(shì)演算 326
12.1 研究趨勢(shì) 327
12.2 趨勢(shì)演算算法 328
12.2.1 趨勢(shì)窗口 328
12.2.2 簡(jiǎn)單趨勢(shì) 331
12.2.3 用戶定義聚合函數(shù) 332
12.2.4 簡(jiǎn)單趨勢(shì)計(jì)算 337
12.2.5 反轉(zhuǎn)規(guī)則 339
12.2.6 FHLS條狀圖介紹 341
12.2.7 可視化數(shù)據(jù) 343
12.3 實(shí)際應(yīng)用 351
12.3.1 算法特性 352
12.3.2 潛在的用例 352
12.4 小結(jié) 353
第 13章 數(shù)據(jù)保護(hù) 354
13.1 數(shù)據(jù)安全性 354
13.1.1 存在的問題 355
13.1.2 基本操作 355
13.2 認(rèn)證和授權(quán) 356
13.3 訪問 358
13.4 加密 359
13.4.1 數(shù)據(jù)處于靜態(tài)時(shí) 359
13.4.2 數(shù)據(jù)處于傳輸時(shí) 368
13.4.3 混淆/匿名 369
13.4.4 遮罩 372
13.4.5 令牌化 375
13.5 數(shù)據(jù)處置 377
13.6 Kerberos認(rèn)證 378
13.6.1 用例1:Apache Spark在受保護(hù)的HDFS中訪問數(shù)據(jù) 379
13.6.2 用例2:擴(kuò)展到自動(dòng)身份驗(yàn)證 381
13.6.3 用例3:從Spark連接到安全數(shù)據(jù)庫(kù) 381
13.7 安全生態(tài) 383
13.7.1 Apache Sentry 383
13.7.2 RecordService 384
13.8 安全責(zé)任 385
13.9 小結(jié) 386
第 14章 可擴(kuò)展算法 387
14.1 基本原則 387
14.2 Spark架構(gòu) 390
14.2.1 Spark的歷史 390
14.2.2 動(dòng)態(tài)組件 391
14.3 挑戰(zhàn) 395
14.3.1 算法復(fù)雜性 395
14.3.2 數(shù)值異常 395
14.3.3 洗牌 398
14.3.4 數(shù)據(jù)模式 398
14.4 規(guī)劃你的路線 399
14.5 設(shè)計(jì)模式和技術(shù) 409
14.5.1 Spark API 410
14.5.2 摘要模式 411
14.5.3 擴(kuò)展并解決模式 411
14.5.4 輕量級(jí)洗牌 412
14.5.5 寬表模式 414
14.5.6 廣播變量模式 415
14.5.7 組合器模式 416
14.5.8 集群優(yōu)化 420
14.5.9 再分配模式 422
14.5.10 加鹽鍵模式 423
14.5.11 二次排序模式 424
14.5.12 過濾過度模式 426
14.5.13 概率算法 426
14.5.14 選擇性緩存 427
14.5.15 垃圾回收 428
14.5.16 圖遍歷 429
14.6 小結(jié) 430