SPARK大数据算法 版权信息
- ISBN:9787519887728
- 条形码:9787519887728 ; 978-7-5198-8772-8
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>
SPARK大数据算法 本书特色
编辑推荐Apache Spark不仅速度快,易于使用,还提供了丰富的分析能力和多语言支持,掌握这个集群计算框架的实用知识已经成为数据工程师和数据科学家的**技能。利用这本实用指南,想要了解Spark的人能从中学习实用的PySpark算法和示例。
每一章中,本书作者会向你展示如何用一组Spark转换和算法解决一个数据问题。你会了解如何应对涉及ETL、设计模式、机器学习算法、数据分区和基因组分析的问题。每个技巧都提供了利用PySpark驱动器和shell脚本使用的PySpark算法。
专家推荐“如果你希望采用一种可伸缩的方式实现现有算法,或者正在使用Spark开发新的自定义算法,对于这些人,这本书是一个绝好的资源。”——Matei Zaharia斯坦福大学计算机科学副教授;Databricks首席技术专家;Apache Spark创始人
市面上*权威的关于Hadoop与Spark大数据处理技巧的教程,提供了丰富的算法和工具。
SPARK大数据算法 内容简介
利用这本书,你将学习以下内容:了解如何选择Spark转换实现优化的解决方案。探索强大的转换和归约,包括reduceByKey()、combineByKey()和mapPartitions()。理解数据分区以实现优化查询。使用PySpark设计模式构建和应用模型。对图数据应用motif查找算法。使用GraphFrames API分析图数据。对临床医学和基因组数据应用PySpark算法。学习如何在ML算法中使用和应用特征工程。了解并使用实用的数据设计模式。
SPARK大数据算法 目录
目录
序 1
前言 3
第I 部分 基础知识
第1 章 Spark 和PySpark 简介 13
1.1 为什么使用Spark 完成数据分析 14
1.1.1 Spark 生态系统 17
1.1.2 Spark 架构 18
1.2 PySpark 的能力 .25
1.3 Spark 数据抽象 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 由集合创建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 转换 48
1.5.3 加载 49
1.6 小结 .50
第2 章 转换实战 51
2.1 DNA 碱基计数示例 .52
2.1.1 DNA 碱基计数问题 55
2.1.2 FASTA 格式 55
2.1.3 示例数据 .56
2.2 DNA 碱基计数解决方案1 56
2.2.1 步骤1:由输入创建一个RDD[String] 57
2.2.2 步骤2:定义一个映射器函数59
2.2.3 步骤3:得出DNA 字母频度 62
2.2.4 解决方案1 的优缺点.64
2.3 DNA 碱基计数解决方案2 65
2.3.1 步骤1:由输入创建一个RDD[String] 67
2.3.2 步骤2:定义一个映射器函数67
2.3.3 步骤3:得出DNA 字母频度 69
2.3.4 解决方案2 的优缺点.70
2.4 DNA 碱基计数解决方案3 71
2.4.1 mapPartitions() 转换 71
2.4.2 步骤1:由输入创建一个RDD[String] 79
2.4.3 步骤2:定义函数处理一个分区 .79
2.4.4 步骤3:对各个分区应用自定义函数 82
2.4.5 解决方案3 的优缺点.84
2.5 小结 .84
第3 章 映射器转换 87
3.1 数据抽象和映射器 87
3.2 转换是什么? .89
3.2.1 懒转换 94
3.2.2 map() 转换 96
3.2.3 DataFrame 映射器 102
3.3 flatMap() 转换 .105
3.3.1 map() 与flatMap() 111
3.3.2 对DataFrame 应用flatMap() 111
3.4 mapValues() 转换 115
3.5 flatMapValues() 转换 116
3.6 mapPartitions() 转换 . 118
3.6.1 处理空分区 .121
3.6.2 优缺点 125
3.6.3 DataFrame 和mapPartitions() 转换 .126
3.7 小结 129
第4 章 Spark 中的归约 131
4.1 创建(键,值)对RDD .132
4.2 归约转换.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 要分析的输入数据集152
4.6.2 aggregateByKey() 转换 .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 小结 174
第II 部分 处理数据
第5 章 数据分区 . 179
5.1 分区简介.180
5.2 管理分区.185
5.2.1 默认分区 186
5.2.2 显式分区 187
5.3 为SQL 查询完成物理分区 188
5.4 Spark 中的数据物理分区 192
5.4.1 分区为文本格式 192
5.4.2 分区为Parquet 格式 193
5.5 如何查询分区数据 .194
5.6 小结 196
第6 章 图算法 . 199
6.1 图介绍 .200
6.2 GraphFrames API 202
6.2.1 如何使用GraphFrames .203
6.2.2 GraphFrames 函数和属性 .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 分析航班数据 .236
6.5 小结 246
第7 章 与外部数据源交互 247
7.1 关系数据库 248
7.1.1 读取数据库 .249
7.1.2 将DataFrame 写入数据库 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 小结 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 算法实现 315
8.2.3 使用邻接矩阵的自定义PySpark PageRank 算法实现 318
8.2.4 使用GraphFrames 实现的PageRank 321
8.3 小结 322
第III 部分 数据设计模式
第9 章 经典数据设计模式 327
9.1 输入– 映射– 输出 .328
9.1.1 RDD 解决方案 329
9.1.2 DataFrame 解决方案 332
9.1.3 扁平映射器功能 334
9.2 输入– 过滤– 输出 .336
9.2.1 RDD 解决方案 337
9.2.2 DataFrame 解决方案 337
9.2.3 DataFrame 过滤器 338
9.3 输入– 映射– 归约– 输出 .340
9.3.1 RDD 解决方案 340
9.3.2 DataFrame 解决方案 344
9.4 输入– 多重– 映射– 归约– 输出 346
9.4.1 RDD 解决方案 348
9.4.2 DataFrame 解决方案 350
9.5 输入– 映射– 组合器– 归约– 输出351
9.6 输入– 映射分区– 归约– 输出 355
9.7 倒排索引.359
9.7.1 问题陈述 360
9.7.2 输入 .360
9.7.3 输出 .360
9.7.4 PySpark 解决方案 361
9.8 小结 364
第10 章 实用数据设计模式 367
10.1 映射器内部组合 368
10.1.1 基本MapReduce 算法 .370
10.1.2 按记录映射器内部组合 372
10.1.3 按分区映射器内部组合 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:传统MapReduce 385
10.3.2 解决方案2:排序 .386
10.3.3 解决方案 3:Spark 的mapPartitions() 386
10.4 复合模式和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 实现 403
10.4.6 函子和幺半群 406
10.4.7 幺半群使用小结 .408
10.5 分箱 408
10.6 排序 412
10.7 小结 413
第11 章 连接设计模式 . 415
11.1 连接操作介绍 415
11.2 MapReduce 中的连接 418
11.2.1 映射阶段 419
11.2.2 归约器阶段 420
11.2.3 PySpark 实现 421
11.3 使用RDD 的映射端连接 .422
11.4 使用DataFrame 的映射端连接 .427
11.4.1 步骤1:创建Airports 缓存 429
11.4.2 步骤2:创建Airlines 缓存 429
11.4.3 步骤3:创建事实表 .430
11.4.4 步骤4:应用映射端连接 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 小结 436
第12 章 PySpark 中的特征工程 439
12.1 特征工程介绍 441
12.2 增加新特征 .443
12.3 应用UDF .444
12.4 创建管道 444
12.5 二值化数据 .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 对单列应用StringIndexer463
12.10.2 对多列应用StringIndexer464
12.11 向量组合 464
12.12 分桶 .466
12.12.1 Bucketizer 467
12.12.2 QuantileDiscretizer .468
12.13 对数转换 469
12.14 独热编码 471
12.15 TF-IDF 477
12.16 FeatureHasher .482
12.17 SQLTransformer .483
12.18 小结 .484
展开全部
SPARK大数据算法 作者简介
[美]马哈默德·帕瑞斯安(Mahmoud Parsian),计算机科学博士,作为开发人员、设计师、架构师和作者,他是一位有30多年丰富经验的软件专业人士。在过去的15年里,他一直在从事Java服务器端计算、数据库、MapReduce、Spark和分布式计算的相关工作。Parsian博士领导了Illumina的大数据团队,专注于大规模基因组分析以及使用Spark和PySpark的分布式计算。Parsian博士还在圣克拉拉大学教授机器学习和大数据建模和分析课程。