欢迎光临
免费的PDF电子书下载网站

Spark大数据处理与分析 PDF下载

编辑推荐

介绍大数据发展趋势和基于Spark的生态环境,全面系统地提供Spark开发的基础知识,提供基于Docker容器开发环境和编程实例,引导Spark技术学习者快速入门,系统的掌握Spark的编程技术。

 ;

内容简介

本书是Spark技术入门的基础类书籍,通过本书的学习实验可以牢固掌握Spark编程技术的基本概念、原理和编程方法,能够进行应用程序的实际开发。

作者简介

雷擎,对外经济贸易大学教师,中国科学院计算技术研究所博士

Spark大数据处理与分析 PDF下载

目录

第1章Spark生态环境/1
1.1平台设计1
1.2Spark简介5
1.2.1技术特性6
1.2.2数据格式9
1.2.3编程语言12
1.3虚拟环境18
1.3.1发展历史19
1.3.2技术特征20
1.3.3技术架构21
1.3.4管理命令24
1.4HBase技术30
1.4.1系统架构31
1.4.2存储机制33
1.4.3常用命令35
1.5环境部署46
1.6小结46
第2章理解Spark/47
2.1数据处理48
2.1.1MapReduce48
2.1.2工作机制51
2.2认识RDD54
2.3操作RDD57
2.3.1转换57
2.3.2动作62
2.4Scala编程66
2.4.1面向对象编程66
2.4.2函数式编程83
2.4.3集合类88
2.5案例分析96
2.5.1启动交换界面97
2.5.2SparkContext和
SparkSession98
2.5.3加载数据99
2.5.4应用操作100
2.5.5缓存处理103
2.6小结106
第3章键值对与分区/107
3.1键值对RDD107
3.1.1创建108
3.1.2转换111
3.1.3动作123
3.2分区和洗牌124
3.2.1分区125
3.2.2洗牌131
3.3共享变量133
3.3.1广播变量133
3.3.2累加器136
3.4Scala高级语法139
3.4.1高阶函数139
3.4.2泛型类145
3.4.3隐式转换150
3.5案例分析152
3.5.1检查事件数据153
3.5.2reduceByKey和
groupByKey155
3.5.3三种连接转换159
3.5.4执行几个动作161
3.5.5跨节点分区162
3.6小结164
第4章关系型数据处理/166
4.1Spark SQL概述167
4.1.1Catalyst优化器168
4.1.2DataFrame与
DataSet169
4.1.3创建结构化数据171
4.2结构化数据操作181
4.2.1选取列182
4.2.2选择语句(select、
selectExpr)184
4.2.3操作列(withColumn、
withColumnRenamed、
drop)186
4.2.4条件语句(where、
filter)187
4.2.5去除重复(distinct、
dropDuplicates)189
4.2.6排序语句(sort、
orderBy)190
4.2.7操作多表(union、
join)191
4.2.8聚合操作198
4.2.9用户定义函数202
4.3案例分析204
4.3.1创建DataFrame
204
4.3.2操作DataFrame
209
4.3.3按年份组合211
4.4小结213
第5章数据流的操作/214
5.1处理范例215
5.1.1至少一次215
5.1.2最多一次216
5.1.3恰好一次216
5.2理解时间218
5.3离散化流219
5.3.1一个例子220
5.3.2StreamingContext
222
5.3.3输入流223
5.4离散流的操作228
5.4.1基本操作229
5.4.2transform230
5.4.3连接操作232
5.4.4SQL操作232
5.4.5输出操作233
5.4.6窗口操作235
5.4.7有状态转换237
5.5结构化流242
5.5.1一个例子242
5.5.2工作机制245
5.5.3窗口操作251
5.6案例分析255
5.6.1探索数据256
5.6.2创建数据流260
5.6.3转换操作267
5.6.4窗口操作268
5.7小结271
〖1〗Spark大数据处理与分析目录〖3〗〖3〗第6章分布式的图处理/272
6.1理解图的概念272
6.2图并行系统276
6.3一个例子279
6.4创建和探索图283
6.4.1属性图284
6.4.2构建器287
6.4.3创建图288
6.4.4探索图296
6.5图运算符298
6.5.1属性运算符300
6.5.2结构运算符301
6.5.3联结运算符305
6.5.4点和边操作311
6.5.5收集相邻信息314
6.6Pregel317
6.6.1一个例子318
6.6.2Pregel运算符320
6.6.3标签传播算法321
6.6.4PageRank算法322
6.7案例分析325
6.7.1定义点326
6.7.2定义边328
6.7.3创建图329
6.7.4PageRank331
6.7.5Pregel332
6.8小结334
第7章机器学习/335
7.1MLlib335
7.2数据类型336
7.2.1局部向量336
7.2.2标签向量337
7.2.3局部矩阵338
7.2.4分布矩阵340
7.3统计基础344
7.3.1相关分析344
7.3.2假设检验346
7.3.3摘要统计347
7.4算法概述348
7.4.1有监督学习349
7.4.2无监督学习350
7.4.3多种算法介绍351
7.4.4协同过滤353
7.5交叉验证354
7.6机器学习管道355
7.6.1概念介绍356
7.6.2Spark管道357
7.6.3模型选择364
7.7实例分析371
7.7.1预测用户偏好371
7.7.2分析飞行延误377
7.8小结384
第8章特征工程/385
8.1特征提取385
8.1.1TFIDF385
8.1.2Word2Vec388
8.1.3CountVectorizer
390
8.2特征转换392
8.2.1Tokenizer392
8.2.2StopWordsRemover
394
8.2.3ngram395
8.2.4Binarizer396
8.2.5PCA396
8.2.6PolynomialExpansion
397
8.2.7Discrete Cosine ;
Transform398
8.2.8StringIndexer400
8.2.9IndexToString402
8.2.10OneHotEncoder
405
8.2.11VectorIndexer406
8.2.12Interaction408
8.2.13Normalizer411
8.2.14StandardScaler
413
8.2.15MinMaxScaler415
8.2.16MaxAbsScaler417
8.2.17Bucketizer418
8.2.18ElementwiseProduct
419
8.2.19SQLTransformer
420
8.2.20VectorAssembler
421
8.2.21QuantileDiscretizer
423
8.2.22Imputer424
8.3特征选择426
8.3.1VectorSlicer426
8.3.2RFormula428
8.3.3ChiSqSelector430
8.4局部敏感哈希433
8.4.1局部敏感哈希
操作433
8.4.2局部敏感哈希
算法434
8.5小结439
第9章算法汇总/440
9.1决策树和集成树440
9.1.1决策树440
9.1.2集成树447
9.2分类和回归461
9.2.1线性方法462
9.2.2分类463
9.2.3回归487
9.3聚集505
9.3.1K均值505
9.3.2潜在狄利克雷
分配506
9.3.3二分K均值509
9.3.4高斯混合模型510
9.4小结512第10章Spark应用程序/513
10.1SparkContext与
SparkSession513
10.2构建应用519
10.3部署应用527
10.3.1集群架构531
10.3.2集群管理534
10.4小结542
第11章监视和优化/543
11.1工作原理543
11.1.1依赖关系544
11.1.2划分阶段547
11.1.3实例分析548
11.2洗牌机制553
11.3内存管理555
11.4优化策略558
11.4.1数据序列化558
11.4.2内存调优559
11.4.3其他方面561
11.5最佳实践563
11.5.1系统配置563
11.5.2程序调优569
11.6案例分析576
11.6.1执行模型576
11.6.2监控界面578
11.6.3调试优化583
11.7小结585
参考文献/586

前沿

关于本书
要真正理解大数据,需要一些历史背景的帮助。大约在2001年,Gartner给出了大数据的定义: Big data is data that contains greater variety arriving in increasing volumes and with everhigher velocity。其意思是大数据是这样的数据,随着其不断增加的容量和更快的速度,数据类型具有更大的多样性,这就是所谓的3V(Variety、Volume和Velocity)。简言之,大数据是更大、更复杂的数据集,尤其是来自更多的新数据源。这些数据集非常庞大,传统的数据处理软件无法管理它们。但是,这些大量的数据可以用来解决以前无法解决的业务问题。
尽管大数据的概念相对较新,但大数据集的起源可追溯到20世纪60年代和70年代,当数据世界刚刚起步时,出现了第一个数据中心和关系数据库。大约在2005年,人们开始意识到通过Facebook、YouTube和其他在线服务产生巨量的用户数量。 Hadoop是在同一年开发的,是专门为存储和分析大数据集而创建的开源框架,NoSQL在这段时间也开始流行起来。类似于Hadoop这样的开源框架,Spark的发展对于大数据的发展至关重要,因为它们使得大数据更容易处理,并且更便宜地存储。在之后的几年中,数据量急剧上升,用户仍然在生成大量的数据。随着物联网(IoT)的出现,更多的物体和设备连接到互联网,收集关于客户使用模式和产品性能的数据,以及机器学习的出现产生了更多的数据。虽然大数据已经走了很长的路,但其实用性只是刚刚开始。
我们编写本书的目的在于介绍大数据的发展趋势和基于Spark的生态环境,全面系统地提供Spark开发的基础知识,提供基于Docker容器的开发环境和编程实例。在本书的编写中,把Spark的基础知识与教学经验和学习体会结合起来,希望可以引导Spark技术学习者快速入门,系统地掌握Spark的编程技术。本书围绕Spark技术开发,共11章。其中加的章节属于选学章节,加的章节属于难度更大的章节,可以酌情选学。
第1章介绍Spark生态环境,其中包括关键技术、Spark技术特征、编程语言、虚拟环境和HBase等,并且提供了实际的操作方法,这部分技术和知识会在后面的章节详细说明,并加以应用。
第2章介绍Spark数据处理的基本机制。Apache Spark是一个在Hadoop上运行并处理不同类型数据的集群计算框架,对于许多问题来说,可以一站式解决方案。另外,通过本章的学习,理解RDD的基本概念,RDD支持两种类型的操作: 转换(Transformation)——从现有数据集创建新数据集,以及动作(Action)——在数据集上运行计算后将值返回给驱动程序。使用Scala和Spark是学习大数据分析很好的组合。Scala允许将两种方法结合使用,即以面向对象编程(ObjectOriented Programming)和函数式编程(Functional Programming)两种风格编写代码。
第3章重点讲解键值对RDD功能,学习如何创建键值对RDD和进行键值对RDD的相关操作,如Spark RDD中的转换和动作。这里的转换操作包括groupByKey、reduceByKey、join、leftOuterJoin和rightOuterJoin等,而countByKey等是针对键值对RDD的动作。本章还讨论Spark中的分区和洗牌,数据分区和洗牌的概念对于Apache Spark 作业的正常运行至关重要,并且会对性能产生很大影响,决定了资源的利用情况。共享变量是许多函数和方法必须并行使用的变量,可以在并行操作中使用。另外,本章还介绍了Scala的高级语法。
〖1〗Spark大数据处理与分析前言〖3〗〖3〗第4章介绍Spark SQL,是用于结构化数据处理的Spark模块,提供很多有关数据结构和类型的信息,Spark SQL使用这些额外的信息执行性能优化。本章还介绍DataFrame和DataSet相关API的概念,并且区分两种接口API的特征,然后介绍RDD、DataFrame和DataSet三种数据结构的转换,最后介绍结构化数据的操作方法。
第5章了解实时流传输体系结构如何工作,以提供有价值的信息,以及三种流处理范式。Spark Streaming是Spark核心的扩展组件之一,可扩展地实现实时数据流的高吞吐量、容错处理。通过本章可学习Spark Streaming的基础知识,包括流式传输的需求、体系结构和传输方式,了解Spark Streaming的输入源类型以及各种数据流操作。结构化流是基于Spark SQL引擎构建的可伸缩且容错的流处理引擎,可以像对静态数据进行批处理计算一样表示流计算。
第6章Spark GraphX是一个分布式图处理框架,是基于Spark平台的提供对图计算和图挖掘简洁易用的、丰富的接口,极大地满足了对分布式图处理的需求。通过本章可学习属性图的概念,GraphX将图计算和数据计算集成到一个系统中,数据不仅可以被当作图进行操作,同样也可以被当作表进行操作。它支持大量图计算的基本操作,如subgraph()、mapReduceTriplets()等,也支持数据并行计算的基本操作,如map()、reduce()、filter()、join()等。从本章中可以学习如何使用计算模型Pregel完成平行图处理任务。
第7章讨论机器学习概念以及如何使用Spark MLlib和ML库运行预测分析,使用示例应用程序说明Spark机器学习领域中功能强大的API。MLlib和ML支持单个机器上存储的局部向量和矩阵,以及由一个或多个RDD支持的分布式矩阵。MLlib库也提供了一些基本的统计分析工具,包括相关性、分层抽样、假设检验、随机数生成等,在RDD和数据帧数据进行汇总统计功能;使用皮尔森或斯皮尔曼方法计算数据之间的相关性;还提供了假设检验和随机数据生成的支持。MLlib 中包括Spark的机器学习功能,实现可以在计算机集群上并行完成的机器学习算法。MLlib拥有多种机器学习算法,用于二元以及多元分类和回归问题的解决,这些方法包括线性模型、决策树和朴素贝叶斯方法等;使用基于交替最小二乘算法建立协同过滤推荐模型。
第8章特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好作用的过程。这个过程包含特征提取、特征构建、特征选择等模块。本章学习了特征工程的工具集。根据具体问题,执行特征选择有很多不同的选项,如TFIDF、Word2Vec和Vectorizers用于文本分析问题,适合文本的特征选择;对于特征转换,可以使用各种缩放器、编码器和离散器;对于向量的子集,可以使用VectorSlicer和ChiSquare Selector,它们使用标记的分类特征决定选择哪些特征。
第9章决策树和集成树是分类和回归的机器学习任务流行的方法,MLlib包支持二元分类、多元分类和回归分析的各种方法,总结各种机器学习算法,分类和回归: 支持向量机、逻辑回归、线性回归、决策树、朴素贝叶斯分类;协作过滤技术包括交替最小二乘(ALS);聚类分析方法包括K均值和潜在狄利克雷分配(LDA)等。
第10章讲述如何设置一个完整的开发环境开发和调试Spark应用程序。本章使用Scala作为开发语言,SBT作为构建工具,讲述如何使用管理依赖项、如何打包和部署Spark应用程序。另外,本章还介绍Spark应用程序的几种部署模式。而在Spark 2.0中,通过SparkSession可以实现相同的效果,而不会显式创建SparkConf、SparkContext或SQLContext,因为它们被封装在SparkSession中。
第11章提供有关如何调整Apache Spark作业的相关信息,如性能调优介绍、Spark序列化库(如Java序列化和Kryo序列化)、Spark内存调优,还介绍了Spark数据结构调优、Spark数据区域性和垃圾收集调优。
本书已修改、更新和校对多次,但由于作者水平有限,加之Spark技术的快速更新和发展,书中疏漏和不足在所难免,真诚希望读者不吝赐教,不胜感激。
致谢
在本书的写作过程中,得到很多人士的悉心帮助,在此谨向给予本书帮助的诸位及本书所参考的官方网站和网站社区表示诚挚的感谢!
特别感谢对外经济贸易大学信息学院为本书的教学和实践提供了支持平台。
特别感谢软件工程师伊凡对本书中的代码进行了整理和调试,并提出了宝贵的意见。
代码和数据
 ;本书涉及的Docker环境的部署脚本、代码以及数据,可以从Github资源库中得到,地址为https://github.com/leeivan/env.lab.spark.docker.git。
另一种方式是直接下载封装好的Docker镜像文件,地址为https://hub.docker.com/repository/docker/leeivan/sparklabenv。

编者
2020年9月

Spark大数据处理与分析 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Spark大数据处理与分析