注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)數(shù)據(jù)庫(kù)Spark大數(shù)據(jù)算法

Spark大數(shù)據(jù)算法

Spark大數(shù)據(jù)算法

定 價(jià):¥148.00

作 者: [美]Mahmoud Parsian(馬哈默德 帕瑞斯安)
出版社: 中國(guó)電力出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787519887728 出版時(shí)間: 2024-05-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  利用這本書(shū),你將學(xué)習(xí)以下內(nèi)容:了解如何選擇Spark轉(zhuǎn)換實(shí)現(xiàn)優(yōu)化的解決方案。探索強(qiáng)大的轉(zhuǎn)換和歸約,包括reduceByKey()、combineByKey()和mapPartitions()。理解數(shù)據(jù)分區(qū)以實(shí)現(xiàn)優(yōu)化查詢。使用PySpark設(shè)計(jì)模式構(gòu)建和應(yīng)用模型。對(duì)圖數(shù)據(jù)應(yīng)用motif查找算法。使用GraphFrames API分析圖數(shù)據(jù)。對(duì)臨床醫(yī)學(xué)和基因組數(shù)據(jù)應(yīng)用PySpark算法。學(xué)習(xí)如何在ML算法中使用和應(yīng)用特征工程。了解并使用實(shí)用的數(shù)據(jù)設(shè)計(jì)模式。

作者簡(jiǎn)介

  Mahmoud Parsian,計(jì)算機(jī)科學(xué)博士,作為開(kāi)發(fā)人員、設(shè)計(jì)師、架構(gòu)師和作者,他是一位有30多年豐富經(jīng)驗(yàn)的軟件專業(yè)人士。在過(guò)去的15年里,他一直在從事Java服務(wù)器端計(jì)算、數(shù)據(jù)庫(kù)、MapReduce、Spark和分布式計(jì)算的相關(guān)工作。Parsian博士領(lǐng)導(dǎo)了Illumina的大數(shù)據(jù)團(tuán)隊(duì),專注于大規(guī)?;蚪M分析以及使用Spark和PySpark的分布式計(jì)算。Parsian博士還在圣克拉拉大學(xué)教授機(jī)器學(xué)習(xí)和大數(shù)據(jù)建模和分析課程。

圖書(shū)目錄

目錄
序 1
前言 3
第I 部分 基礎(chǔ)知識(shí)
第1 章 Spark 和PySpark 簡(jiǎn)介 13
1.1 為什么使用Spark 完成數(shù)據(jù)分析 14
1.1.1 Spark 生態(tài)系統(tǒng) 17
1.1.2 Spark 架構(gòu) 18
1.2 PySpark 的能力 .25
1.3 Spark 數(shù)據(jù)抽象 30
1.3.1 RDD 示例 31
1.3.2 Spark RDD 操作 32
1.3.3 DataFrame 示例 36
1.4 使用PySpark Shell 38
1.4.1 啟動(dòng)PySpark Shell .40
1.4.2 由集合創(chuàng)建RDD .41
1.4.3 聚合和合并鍵的值 .41
1.4.4 過(guò)濾RDD 的元素 43
1.4.5 對(duì)類(lèi)似的鍵分組 44
1.4.6 聚合類(lèi)似鍵的值 45
1.5 使用DataFrame 的ETL 示例 .46
1.5.1 抽取 47
1.5.2 轉(zhuǎn)換 48
1.5.3 加載 49
1.6 小結(jié) .50
第2 章 轉(zhuǎn)換實(shí)戰(zhàn) 51
2.1 DNA 堿基計(jì)數(shù)示例 .52
2.1.1 DNA 堿基計(jì)數(shù)問(wèn)題 55
2.1.2 FASTA 格式 55
2.1.3 示例數(shù)據(jù) .56
2.2 DNA 堿基計(jì)數(shù)解決方案1 56
2.2.1 步驟1:由輸入創(chuàng)建一個(gè)RDD[String] 57
2.2.2 步驟2:定義一個(gè)映射器函數(shù)59
2.2.3 步驟3:得出DNA 字母頻度 62
2.2.4 解決方案1 的優(yōu)缺點(diǎn).64
2.3 DNA 堿基計(jì)數(shù)解決方案2 65
2.3.1 步驟1:由輸入創(chuàng)建一個(gè)RDD[String] 67
2.3.2 步驟2:定義一個(gè)映射器函數(shù)67
2.3.3 步驟3:得出DNA 字母頻度 69
2.3.4 解決方案2 的優(yōu)缺點(diǎn).70
2.4 DNA 堿基計(jì)數(shù)解決方案3 71
2.4.1 mapPartitions() 轉(zhuǎn)換 71
2.4.2 步驟1:由輸入創(chuàng)建一個(gè)RDD[String] 79
2.4.3 步驟2:定義函數(shù)處理一個(gè)分區(qū) .79
2.4.4 步驟3:對(duì)各個(gè)分區(qū)應(yīng)用自定義函數(shù) 82
2.4.5 解決方案3 的優(yōu)缺點(diǎn).84
2.5 小結(jié) .84
第3 章 映射器轉(zhuǎn)換 87
3.1 數(shù)據(jù)抽象和映射器 87
3.2 轉(zhuǎn)換是什么? .89
3.2.1 懶轉(zhuǎn)換 94
3.2.2 map() 轉(zhuǎn)換 96
3.2.3 DataFrame 映射器 102
3.3 flatMap() 轉(zhuǎn)換 .105
3.3.1 map() 與flatMap() 111
3.3.2 對(duì)DataFrame 應(yīng)用flatMap() 111
3.4 mapValues() 轉(zhuǎn)換 115
3.5 flatMapValues() 轉(zhuǎn)換 116
3.6 mapPartitions() 轉(zhuǎn)換 . 118
3.6.1 處理空分區(qū) .121
3.6.2 優(yōu)缺點(diǎn) 125
3.6.3 DataFrame 和mapPartitions() 轉(zhuǎn)換 .126
3.7 小結(jié) 129
第4 章 Spark 中的歸約 131
4.1 創(chuàng)建(鍵,值)對(duì)RDD .132
4.2 歸約轉(zhuǎn)換.134
4.3 Spark 的歸約 136
4.4 簡(jiǎn)單熱身示例 139
4.4.1 使用reduceByKey() 的解決方案 140
4.4.2 使用groupByKey() 的解決方案 141
4.4.3 使用aggregateByKey() 的解決方案 142
4.4.4 使用combineByKey() 的解決方案 143
4.5 什么是Monoid ? 144
4.6 電影問(wèn)題.149
4.6.1 要分析的輸入數(shù)據(jù)集152
4.6.2 aggregateByKey() 轉(zhuǎn)換 .153
4.6.3 使用aggregateByKey() 的第一個(gè)解決方案 .154
4.6.4 使用aggregateByKey() 的第二個(gè)解決方案 .159
4.6.5 使用groupByKey() 的完整PySpark 解決方案 161
4.6.6 使用reduceByKey() 的完整PySpark 解決方案 164
4.6.7 使用combineByKey() 的完整PySpark 解決方案 167
4.7 歸約中的洗牌步驟 .170
4.7.1 groupByKey() 的洗牌步驟 172
4.7.2 reduceByKey() 的洗牌步驟 .173
4.8 小結(jié) 174
第II 部分 處理數(shù)據(jù)
第5 章 數(shù)據(jù)分區(qū) . 179
5.1 分區(qū)簡(jiǎn)介.180
5.2 管理分區(qū).185
5.2.1 默認(rèn)分區(qū) 186
5.2.2 顯式分區(qū) 187
5.3 為SQL 查詢完成物理分區(qū) 188
5.4 Spark 中的數(shù)據(jù)物理分區(qū) 192
5.4.1 分區(qū)為文本格式 192
5.4.2 分區(qū)為Parquet 格式 193
5.5 如何查詢分區(qū)數(shù)據(jù) .194
5.6 小結(jié) 196
第6 章 圖算法 . 199
6.1 圖介紹 .200
6.2 GraphFrames API 202
6.2.1 如何使用GraphFrames .203
6.2.2 GraphFrames 函數(shù)和屬性 .207
6.3 GraphFrames 算法 .207
6.3.1 查找三角形 .208
6.3.2 Motif 查找 212
6.4 實(shí)際示例.222
6.4.1 基因分析 223
6.4.2 社交推薦 224
6.4.3 Facebook 朋友圈 229
6.4.4 連通分量 234
6.4.5 分析航班數(shù)據(jù) .236
6.5 小結(jié) 246
第7 章 與外部數(shù)據(jù)源交互 247
7.1 關(guān)系數(shù)據(jù)庫(kù) 248
7.1.1 讀取數(shù)據(jù)庫(kù) .249
7.1.2 將DataFrame 寫(xiě)入數(shù)據(jù)庫(kù) 258
7.2 讀取文本文件 263
7.3 讀寫(xiě)CSV 文件 265
7.3.1 讀CSV 文件 266
7.3.2 寫(xiě)CSV 文件 270
7.4 讀寫(xiě)JSON 文件 272
7.4.1 讀JSON 文件 .272
7.4.2 寫(xiě)JSON 文件 .274
7.5 讀寫(xiě)Amazon S3 .275
7.5.1 從Amazon S3 讀取 .277
7.5.2 寫(xiě)入Amazon S3 278
7.6 讀寫(xiě)Hadoop 文件 280
7.6.1 讀Hadoop 文本文件 281
7.6.2 寫(xiě)Hadoop 文本文件 284
7.6.3 讀寫(xiě)HDFS SequenceFile .287
7.7 讀寫(xiě)Parquet 文件 288
7.7.1 寫(xiě)Parquet 文件 .289
7.7.2 讀Parquet 文件 .291
7.8 讀寫(xiě)Avro 文件 292
7.8.1 讀Avro 文件 292
7.8.2 寫(xiě)Avro 文件 293
7.9 讀寫(xiě)MS SQL Server .294
7.9.1 寫(xiě)MS SQL Server 294
7.9.2 讀MS SQL Server 295
7.10 讀取圖像文件 295
7.11 小結(jié) 297
第8 章 排名算法 . 299
8.1 秩序乘積.300
8.1.1 計(jì)算秩序乘積 .301
8.1.2 秩序乘積描述 .301
8.1.3 秩序乘積示例 .302
8.1.4 PySpark 解決方案 304
8.2 PageRank 310
8.2.1 PageRank 的迭代計(jì)算 313
8.2.2 使用RDD 的自定義PySpark PageRank 算法實(shí)現(xiàn) 315
8.2.3 使用鄰接矩陣的自定義PySpark PageRank 算法實(shí)現(xiàn) 318
8.2.4 使用GraphFrames 實(shí)現(xiàn)的PageRank 321
8.3 小結(jié) 322
第III 部分 數(shù)據(jù)設(shè)計(jì)模式
第9 章 經(jīng)典數(shù)據(jù)設(shè)計(jì)模式 327
9.1 輸入?C 映射?C 輸出 .328
9.1.1 RDD 解決方案 329
9.1.2 DataFrame 解決方案 332
9.1.3 扁平映射器功能 334
9.2 輸入?C 過(guò)濾?C 輸出 .336
9.2.1 RDD 解決方案 337
9.2.2 DataFrame 解決方案 337
9.2.3 DataFrame 過(guò)濾器 338
9.3 輸入?C 映射?C 歸約?C 輸出 .340
9.3.1 RDD 解決方案 340
9.3.2 DataFrame 解決方案 344
9.4 輸入?C 多重?C 映射?C 歸約?C 輸出 346
9.4.1 RDD 解決方案 348
9.4.2 DataFrame 解決方案 350
9.5 輸入?C 映射?C 組合器?C 歸約?C 輸出351
9.6 輸入?C 映射分區(qū)?C 歸約?C 輸出 355
9.7 倒排索引.359
9.7.1 問(wèn)題陳述 360
9.7.2 輸入 .360
9.7.3 輸出 .360
9.7.4 PySpark 解決方案 361
9.8 小結(jié) 364
第10 章 實(shí)用數(shù)據(jù)設(shè)計(jì)模式 367
10.1 映射器內(nèi)部組合 368
10.1.1 基本MapReduce 算法 .370
10.1.2 按記錄映射器內(nèi)部組合 372
10.1.3 按分區(qū)映射器內(nèi)部組合 374
10.2 Top-10 377
10.2.1 Top-N 形式化描述 .380
10.2.2 PySpark 解決方案 .381
10.2.3 查找Bottom 10384
10.3 MinMax 385
10.3.1 解決方案1:傳統(tǒng)MapReduce 385
10.3.2 解決方案2:排序 .386
10.3.3 解決方案 3:Spark 的mapPartitions() 386
10.4 復(fù)合模式和Monoid 390
10.4.1 Monoid 391
10.4.2 Monoid 和非Monoid 示例 395
10.4.3 非Monoid MapReduce 示例 .399
10.4.4 Monoid MapReduce 示例 401
10.4.5 Monoid 均值計(jì)算的PySpark 實(shí)現(xiàn) 403
10.4.6 函子和幺半群 406
10.4.7 幺半群使用小結(jié) .408
10.5 分箱 408
10.6 排序 412
10.7 小結(jié) 413
第11 章 連接設(shè)計(jì)模式 . 415
11.1 連接操作介紹 415
11.2 MapReduce 中的連接 418
11.2.1 映射階段 419
11.2.2 歸約器階段 420
11.2.3 PySpark 實(shí)現(xiàn) 421
11.3 使用RDD 的映射端連接 .422
11.4 使用DataFrame 的映射端連接 .427
11.4.1 步驟1:創(chuàng)建Airports 緩存 429
11.4.2 步驟2:創(chuàng)建Airlines 緩存 429
11.4.3 步驟3:創(chuàng)建事實(shí)表 .430
11.4.4 步驟4:應(yīng)用映射端連接 431
11.5 使用Bloom 過(guò)濾器的高效連接 431
11.5.1 Bloom 過(guò)濾器 432
11.5.2 一個(gè)簡(jiǎn)單的Bloom 過(guò)濾器示例 434
11.5.3 Python 中的Bloom 過(guò)濾器 435
11.5.4 PySpark 中使用Bloom 過(guò)濾器 435
11.6 小結(jié) 436
第12 章 PySpark 中的特征工程 439
12.1 特征工程介紹 441
12.2 增加新特征 .443
12.3 應(yīng)用UDF .444
12.4 創(chuàng)建管道 444
12.5 二值化數(shù)據(jù) .447
12.6 填充 449
12.7 分詞 451
12.7.1 Tokenizer 452
12.7.2 RegexTokenizer 453
12.7.3 管道分詞 453
12.8 標(biāo)準(zhǔn)化 454
12.9 歸一化 457
12.9.1 使用管道縮放一列 459
12.9.2 在多列上使用 MinMaxScaler 460
12.9.3 使用Normalizer 歸一化 .461
12.10 字符串索引 462
12.10.1 對(duì)單列應(yīng)用StringIndexer463
12.10.2 對(duì)多列應(yīng)用StringIndexer464
12.11 向量組合 464
12.12 分桶 .466
12.12.1 Bucketizer 467
12.12.2 QuantileDiscretizer .468
12.13 對(duì)數(shù)轉(zhuǎn)換 469
12.14 獨(dú)熱編碼 471
12.15 TF-IDF 477
12.16 FeatureHasher .482
12.17 SQLTransformer .483
12.18 小結(jié) .484

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)