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

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

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

定 價:¥148.00

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

購買這本書可以去


ISBN: 9787519887728 出版時間: 2024-05-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄

目錄
序 1
前言 3
第I 部分 基礎(chǔ)知識
第1 章 Spark 和PySpark 簡介 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 啟動PySpark Shell .40
1.4.2 由集合創(chuàng)建RDD .41
1.4.3 聚合和合并鍵的值 .41
1.4.4 過濾RDD 的元素 43
1.4.5 對類似的鍵分組 44
1.4.6 聚合類似鍵的值 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)換實戰(zhàn) 51
2.1 DNA 堿基計數(shù)示例 .52
2.1.1 DNA 堿基計數(shù)問題 55
2.1.2 FASTA 格式 55
2.1.3 示例數(shù)據(jù) .56
2.2 DNA 堿基計數(shù)解決方案1 56
2.2.1 步驟1:由輸入創(chuàng)建一個RDD[String] 57
2.2.2 步驟2:定義一個映射器函數(shù)59
2.2.3 步驟3:得出DNA 字母頻度 62
2.2.4 解決方案1 的優(yōu)缺點.64
2.3 DNA 堿基計數(shù)解決方案2 65
2.3.1 步驟1:由輸入創(chuàng)建一個RDD[String] 67
2.3.2 步驟2:定義一個映射器函數(shù)67
2.3.3 步驟3:得出DNA 字母頻度 69
2.3.4 解決方案2 的優(yōu)缺點.70
2.4 DNA 堿基計數(shù)解決方案3 71
2.4.1 mapPartitions() 轉(zhuǎn)換 71
2.4.2 步驟1:由輸入創(chuàng)建一個RDD[String] 79
2.4.3 步驟2:定義函數(shù)處理一個分區(qū) .79
2.4.4 步驟3:對各個分區(qū)應(yīng)用自定義函數(shù) 82
2.4.5 解決方案3 的優(yōu)缺點.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 對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)缺點 125
3.6.3 DataFrame 和mapPartitions() 轉(zhuǎn)換 .126
3.7 小結(jié) 129
第4 章 Spark 中的歸約 131
4.1 創(chuàng)建(鍵,值)對RDD .132
4.2 歸約轉(zhuǎn)換.134
4.3 Spark 的歸約 136
4.4 簡單熱身示例 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 電影問題.149
4.6.1 要分析的輸入數(shù)據(jù)集152
4.6.2 aggregateByKey() 轉(zhuǎn)換 .153
4.6.3 使用aggregateByKey() 的第一個解決方案 .154
4.6.4 使用aggregateByKey() 的第二個解決方案 .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ū)簡介.180
5.2 管理分區(qū).185
5.2.1 默認分區(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 實際示例.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ù)庫 248
7.1.1 讀取數(shù)據(jù)庫 .249
7.1.2 將DataFrame 寫入數(shù)據(jù)庫 258
7.2 讀取文本文件 263
7.3 讀寫CSV 文件 265
7.3.1 讀CSV 文件 266
7.3.2 寫CSV 文件 270
7.4 讀寫JSON 文件 272
7.4.1 讀JSON 文件 .272
7.4.2 寫JSON 文件 .274
7.5 讀寫Amazon S3 .275
7.5.1 從Amazon S3 讀取 .277
7.5.2 寫入Amazon S3 278
7.6 讀寫Hadoop 文件 280
7.6.1 讀Hadoop 文本文件 281
7.6.2 寫Hadoop 文本文件 284
7.6.3 讀寫HDFS SequenceFile .287
7.7 讀寫Parquet 文件 288
7.7.1 寫Parquet 文件 .289
7.7.2 讀Parquet 文件 .291
7.8 讀寫Avro 文件 292
7.8.1 讀Avro 文件 292
7.8.2 寫Avro 文件 293
7.9 讀寫MS SQL Server .294
7.9.1 寫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 計算秩序乘積 .301
8.1.2 秩序乘積描述 .301
8.1.3 秩序乘積示例 .302
8.1.4 PySpark 解決方案 304
8.2 PageRank 310
8.2.1 PageRank 的迭代計算 313
8.2.2 使用RDD 的自定義PySpark PageRank 算法實現(xiàn) 315
8.2.3 使用鄰接矩陣的自定義PySpark PageRank 算法實現(xiàn) 318
8.2.4 使用GraphFrames 實現(xiàn)的PageRank 321
8.3 小結(jié) 322
第III 部分 數(shù)據(jù)設(shè)計模式
第9 章 經(jīng)典數(shù)據(jù)設(shè)計模式 327
9.1 輸入?C 映射?C 輸出 .328
9.1.1 RDD 解決方案 329
9.1.2 DataFrame 解決方案 332
9.1.3 扁平映射器功能 334
9.2 輸入?C 過濾?C 輸出 .336
9.2.1 RDD 解決方案 337
9.2.2 DataFrame 解決方案 337
9.2.3 DataFrame 過濾器 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 問題陳述 360
9.7.2 輸入 .360
9.7.3 輸出 .360
9.7.4 PySpark 解決方案 361
9.8 小結(jié) 364
第10 章 實用數(shù)據(jù)設(shè)計模式 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 均值計算的PySpark 實現(xiàn) 403
10.4.6 函子和幺半群 406
10.4.7 幺半群使用小結(jié) .408
10.5 分箱 408
10.6 排序 412
10.7 小結(jié) 413
第11 章 連接設(shè)計模式 . 415
11.1 連接操作介紹 415
11.2 MapReduce 中的連接 418
11.2.1 映射階段 419
11.2.2 歸約器階段 420
11.2.3 PySpark 實現(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)建事實表 .430
11.4.4 步驟4:應(yīng)用映射端連接 431
11.5 使用Bloom 過濾器的高效連接 431
11.5.1 Bloom 過濾器 432
11.5.2 一個簡單的Bloom 過濾器示例 434
11.5.3 Python 中的Bloom 過濾器 435
11.5.4 PySpark 中使用Bloom 過濾器 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 標準化 454
12.9 歸一化 457
12.9.1 使用管道縮放一列 459
12.9.2 在多列上使用 MinMaxScaler 460
12.9.3 使用Normalizer 歸一化 .461
12.10 字符串索引 462
12.10.1 對單列應(yīng)用StringIndexer463
12.10.2 對多列應(yīng)用StringIndexer464
12.11 向量組合 464
12.12 分桶 .466
12.12.1 Bucketizer 467
12.12.2 QuantileDiscretizer .468
12.13 對數(shù)轉(zhuǎn)換 469
12.14 獨熱編碼 471
12.15 TF-IDF 477
12.16 FeatureHasher .482
12.17 SQLTransformer .483
12.18 小結(jié) .484

本目錄推薦

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