热门搜索: 中考 高考 考试 开卷17
服务电话 024-96192/23945006
 

Scala和Spark大数据分析.函数式编程.数据流和机器学习

编号:
wx1202097939
销售价:
¥139.04
(市场价: ¥158.00)
赠送积分:
139
数量:
   
商品介绍

"近年来,Scala得以迅速流行,在数据科学和分析领域势头更盛。基于Scala的Spark被广泛应用于生产环境,海量数据的分析可瞬间完成!本书全面系统地介绍Spark应用开发的面向对象和函数式编程概念,指导你用Scala编写强大的Spark程序。本书瞄准很前沿的技术,包含Spark SQL、结构流、graphX和Spark MLib等所有API。本书面向想利用Scala和Spark执行数据分析的人士。

? 本书包含大量精妙的、紧贴实用的大数据分析问题,并说明如何使用Hadoop生态系统上的Scala解决这些问题。
? 一本十分有用的大块头书籍,它呈现概念,并透彻地讲述如何实现概念。
? 本书内容丰富,讨论了PySpark、SparkR、Alixuio和Zeppelin,包罗一切。
? 学习将函数式编程和面向对象概念融为一体的精妙Scala类型系统。
? 处理大范围的应用,从简单的批处理、流处理乃至机器学习
? 分析很常见的用例和一些复杂用例,使用Spark执行大规模数据分析
"

本书介绍Spark应用开发的面向对象和函数式编程概念,讨论RDD和DataFrame基本抽象,讲述如何使用SparkSQL、GraphX和Spark来开发可扩展的、容错的流式应用程序,很后介绍监控、配置、调试、测试和开发等不错主题。通过本书的学习,你将能使用SparkR和PySpark API开发Spark应用程序,使用Zeppelin进行交互式数据分析,使用Alluxio进行内存数据处理,将透彻理解Spark,并能对海量数据执行全栈数据分析,很终成为数据科学家。

"Md. Rezaul Karim 是德国Fraunhofer FIT的研究学者,也是德国亚琛工业大学的博士学位研究生预科生。他拥有计算机科学的学士与硕士学位。在加盟Fraunhofer FIT之前,他曾作为研究员任职于爱尔兰的数据分析深入研究中心。更早之前,他还担任过三星电子公司优选研究中心的首席工程师;该研究中心分布于韩国、印度、越南、土耳其以及孟加拉。再早之前,他还在韩国庆熙大学的数据库实验室担任过助理研究员,在韩国的BMTech21公司担任过研发工程师,在孟加拉国的i2软件技术公司担任过软件工程师。
Karim拥有超过8年的研发领域工作经验,并在如下算法和数据结构领域具有深厚的技术背景:C/C++、Java、Scala、R、Python、Docker、Mesos、Zeppelin、Hadoop以及MapReduce,并深入学习了如下技术:Spark、Kafka、DC/OS、DeepLearning4j以及H2O-Sparking Water。他的研究兴趣包括机器学习、深度学习、语义网络、关联数据(Linked Data)、大数据以及生物信息学。同时,他还是Packt出版社出版的以下两本书籍的作者:
● Large-Scale Machine Learning with Spark
● Deep Learning with TensorFlow
我很好感激我的父母,是他们一直鼓励我去不断追求新知识。也想感谢妻子Saroar、儿子Shadman,以及哥哥Mamtaz和姐姐Josna,还有我的朋友们。因为他们总得长时间地忍受我关于《Scala和Spark大数据分析  函数式编程、数据流和机器学习》内容的一些独白,还要鼓励我。另外,由于开源社区的令人赞叹的努力,以及Apache Spark和Scala相关的一些项目的很好技术文档的存在,都使得《Scala和Spark大数据分析  函数式编程、数据流和机器学习》的写作变得颇为容易。也要感谢Packt出版社的组稿、文稿以及技术编辑们(当然还有其他为《Scala和Spark大数据分析  函数式编程、数据流和机器学习》做出贡献的出版社人员),感谢他们真挚的沟通与协调。此外,若没有大量的研究人员和数据分析实践者们在出版物和各种演讲中分享自己的工作内容,公开自己的源代码,《Scala和Spark大数据分析  函数式编程、数据流和机器学习》只怕也是无法面世的。
Sridhar Alla是一位大数据专家,他曾帮助大大小小的诸多公司解决各种复杂的问题,例如数据仓库、数据治理、安全、实时数据处理、高频率的交易系统以及建立大规模的数据科学实践项目等。他也是敏捷技术的实践者,是一位获得认证的敏捷DevOps实践者和实施者。他在美国网域存储公司,以存储软件工程师的身份开始了自己的职业生涯。然后成为位于波士顿的eIQNetworks公司的CTO,该公司是一家网络安全公司。在他的履历表中,还包括曾担任位于费城的Comcast公司的数据科学与工程总监。他是很多会议或者活动(如Hadoop World、Spark峰会等)的热心参与者,在多项技术上提供面授/在线培训。他在美国商标局(US PTO)也有多项技术,内容涉及大规模计算与分布式系统等。他还持有印度尼赫鲁科技大学计算机科学方向的学士学位。目前,他和妻子居住在新泽西州。
Alla在Scala、Java、C、C++、Python、R以及Go语言上有超过18年的编程经验,他的技术研究范围也扩展到Spark、Hadoop、Cassandra、HBase、MongoDB、Riak、Redis、Zeppelin、Mesos、Docker、Kafka、ElasticSearch、Solr、H2O、机器学习、文本分析、分布式计算以及高性能计算等领域。
我要感谢我贤惠的妻子Rosie Sarkaria,在我写作《Scala和Spark大数据分析  函数式编程、数据流和机器学习》的数个月中,她给了我无尽的爱与耐心,并给我写的内容进行了无数次的校订。我也想感谢父母Ravi和Lakshmi Alla,他们也在一直支持我和鼓励我。也要感谢我的朋友们,尤其是Abrar Hashmi和Christian Ludwig,他们不断地给我提供灵感并让我清晰地阐述书中的多个主题。如果没有神奇的Apache基金会,以及那些让Spark变得如此强大与优雅的大数据相关人员们,《Scala和Spark大数据分析  函数式编程、数据流和机器学习》就无法付诸笔端了。我还要感谢Packt出版社的组稿、文稿以及技术编辑们(当然还有其他为《Scala和Spark大数据分析  函数式编程、数据流和机器学习》做出贡献的出版社人员),感谢他们真挚的沟通与协调。
"

目   录

章  Scala简介   1
1.1  Scala的历史与设计目标   2
1.2  平台与编辑器   2
1.3  安装与创建Scala   3
1.3.1  安装Java   3
1.3.2  Windows   4
1.3.3  macOS   6
1.4  Scala:可扩展的编程语言   9
1.4.1  Scala是面向对象的   9
1.4.2  Scala是函数式的   9
1.4.3  Scala是静态类型的   9
1.4.4  在JVM上运行Scala   10
1.4.5  Scala可以执行Java代码   10
1.4.6  Scala可以完成并发与同步处理   10
1.5  面向Java编程人员的Scala   10
1.5.1  一切类型都是对象   10
1.5.2  类型推导   11
1.5.3  Scala REPL   11
1.5.4  嵌套函数   13
1.5.5  导入语句   13
1.5.6  作为方法的操作符   14
1.5.7  方法与参数列表   15
1.5.8  方法内部的方法   15
1.5.9  Scala中的构造器   16
1.5.10  代替静态方法的对象   16
1.5.11  特质   17
1.6  面向初学者的Scala   19
1.6.1  你的行代码   20
1.6.2  交互式运行Scala!   21
1.6.3  编译   21
1.7  本章小结   22
第2章  面向对象的Scala   23
2.1  Scala中的变量   24
2.1.1  引用与值不可变性   25
2.1.2  Scala中的数据类型   26
2.2  Scala中的方法、类和对象   28
2.2.1  Scala中的方法   28
2.2.2  Scala中的类   30
2.2.3  Scala中的对象   30
2.3  包与包对象   41
2.4  Java的互操作性   42
2.5  模式匹配   43
2.6  Scala中的隐式   45
2.7  Scala中的泛型   46
2.8  SBT与其他构建系统   49
2.8.1  使用SBT进行构建   49
2.8.2  Maven与Eclipse   50
2.8.3  Gradle与Eclipse   51
2.9  本章小结   55
第3章  函数式编程概念   56
3.1  函数式编程简介   57
3.2  面向数据科学家的函数式Scala   59
3.3  学习Spark为何要掌握函数式编程和Scala   59
3.3.1  为何是Spark?   59
3.3.2  Scala与Spark编程模型   60
3.3.3  Scala与Spark生态   61
3.4  纯函数与高阶函数   62
3.4.1  纯函数   62
3.4.2  匿名函数   64
3.4.3  高阶函数   66
3.4.4  以函数作为返回值   70
3.5  使用高阶函数   71
3.6  函数式Scala中的错误处理   72
3.6.1  Scala中的故障与异常   73
3.6.2  抛出异常   73
3.6.3  使用try和catch捕获异常   73
3.6.4  finally   74
3.6.5  创建Either   75
3.6.6  Future   76
3.6.7  执行任务,而非代码块   76
3.7  函数式编程与数据可变性   76
3.8  本章小结   77
第4章  集合API   78
4.1  Scala集合API   78
4.2  类型与层次   79
4.2.1  Traversable   79
4.2.2  Iterable   80
4.2.3  Seq、LinearSeq和IndexedSeq   80
4.2.4  可变型与不可变型   80
4.2.5  Array   82
4.2.6  List   85
4.2.7  Set   86
4.2.8  Tuple   88
4.2.9  Map   89
4.2.10  Option   91
4.2.11  exists   94
4.2.12  forall   96
4.2.13  filter   96
4.2.14  map   97
4.2.15  take   97
4.2.16  groupBy   98
4.2.17  init   98
4.2.18  drop   98
4.2.19  takeWhile   98
4.2.20  dropWhile   99
4.2.21  flatMap   99
4.3  性能特征   100
4.3.1  集合对象的性能特征   100
4.3.2  集合对象的内存使用   102
4.4  Java互操作性   103
4.5  Scala隐式的使用   104
4.6  本章小结   108
第5章  狙击大数据——Spark加入战团   109
5.1  数据分析简介   109
5.2  大数据简介   114
5.3  使用Apache Hadoop进行分布式计算   116
5.3.1  Hadoop分布式文件系统(HDFS)   117
5.3.2  MapReduce框架   122
5.4  Apache Spark驾到   125
5.4.1  Spark core   128
5.4.2  Spark SQL   128
5.4.3  Spark Streaming   128
5.4.4  Spark GraphX   129
5.4.5  Spark ML   129
5.4.6  PySpark   130
5.4.7  SparkR   130
5.5  本章小结   131
第6章  开始使用Spark——REPL和RDD   132
6.1  深入理解Apache Spark   132
6.2  安装Apache Spark   136
6.2.1  Spark独立服务器模式   136
6.2.2  基于YARN的Spark   140
6.2.3  基于Mesos的Spark   142
6.3  RDD简介   142
6.4  使用Spark shell   147
6.5  action与transformation算子   150
6.5.1  transformation算子   151
6.5.2  action算子   158
6.6  缓存   162
6.7  加载和保存数据   165
6.7.1  加载数据   165
6.7.2  保存RDD   166
6.8  本章小结   166
第7章  特殊RDD操作   167
7.1  RDD的类型   167
7.1.1  pairRDD   170
7.1.2  DoubleRDD   171
7.1.3  SequenceFileRDD   172
7.1.4  CoGroupedRDD   173
7.1.5  ShuffledRDD   174
7.1.6  UnionRDD   175
7.1.7  HadoopRDD   177
7.1.8  NewHadoopRDD   177
7.2  聚合操作   178
7.2.1  groupByKey   180
7.2.2  reduceByKey   181
7.2.3  aggregateByKey   182
7.2.4  combineByKey   182
7.2.5  groupByKey、reduceByKey、combineByKey和aggregateByKey之间的对比   184
7.3  分区与shuffle   187
7.3.1  分区器   188
7.3.2  shuffle   190
7.4  广播变量   193
7.4.1  创建广播变量   194
7.4.2  移除广播变量   195
7.4.3  销毁广播变量   195
7.5  累加器   196
7.6  本章小结   199
第8章  介绍一个小结构——Spark SQL   200
8.1  Spark SQL与数据帧   200
8.2  数据帧API与SQL API   203
8.2.1  pivot   208
8.2.2  filter   208
8.2.3  用户自定义函数(UDF)   209
8.2.4  结构化数据   210
8.2.5  加载和保存数据集   213
8.3  聚合操作   214
8.3.1  聚合函数   215
8.3.2  groupBy   222
8.3.3  rollup   223
8.3.4  cube   223
8.3.5  窗口函数   224
8.4  连接   226
8.4.1  内连接工作机制   228
8.4.2  广播连接   229
8.4.3  连接类型   229
8.4.4  连接的性能启示   236
8.5  本章小结   237
第9章  让我流起来,Scotty——Spark Streaming   238
9.1  关于流的简要介绍   238
9.1.1  至少处理一次   240
9.1.2  至多处理一次   241
9.1.3  精确处理一次   242
9.2  Spark Streaming   243
9.2.1  StreamingContext   245
9.2.2  输入流   246
9.2.3  textFileStream样例   247
9.2.4  twitterStream样例   248
9.3  离散流   249
9.3.1  转换   251
9.3.2  窗口操作   253
9.4  有状态/无状态转换   256
9.4.1  无状态转换   256
9.4.2  有状态转换   257
9.5  检查点   257
9.5.1  元数据检查点   258
9.5.2  数据检查点   259
9.5.3  driver故障恢复   259
9.6  与流处理平台(Apache Kafka)的互操作   261
9.6.1  基于接收器的方法   261
9.6.2  direct 流   262
9.6.3  结构化流示例   264
9.7  结构化流   265
9.7.1  处理事件时间(event-time)和延迟数据   268
9.7.2  容错语义   269
9.8  本章小结   269
0章  万物互联——GraphX   270
10.1  关于图论的简要介绍   270
10.2  GraphX   275
10.3  VertexRDD和EdgeRDD   277
10.3.1  VertexRDD   277
10.3.2  EdgeRDD   278
10.4  图操作   280
10.4.1  filter   281
10.4.2  mapValues   281
10.4.3  aggregateMessages   282
10.4.4  triangleCount   282
10.5  Pregel API   284
10.5.1  connectedComponents   284
10.5.2  旅行商问题(TSP)   285
10.5.3  最短路径   286
10.6  PageRank   290
10.7  本章小结   291
1章  掌握机器学习Spark MLlib
和ML   292
11.1  机器学习简介   292
11.1.1  典型的机器学习工作流   293
11.1.2  机器学习任务   294
11.2  Spark机器学习API   298
11.3  特征提取与转换   299
11.3.1  CountVectorizer   301
11.3.2  Tokenizer   302
11.3.3  StopWordsRemover   304
11.3.4  StringIndexer   304
11.3.5  OneHotEncoder   305
11.3.6  Spark ML pipeline   306
11.4  创建一个简单的pipeline   308
11.5  无监督机器学习   309
11.5.1  降维   309
11.5.2  PCA   309
11.6  分类   314
11.6.1  性能度量   314
11.6.2  使用逻辑回归的多元分类   324
11.6.3  使用随机森林提升分类精度   327
11.7  本章小结   330
2章  贝叶斯与朴素贝叶斯   332
12.1  多元分类   332
12.1.1  将多元分类转换为二元分类   333
12.1.2  层次分类   338
12.1.3  从二元分类进行扩展   338
12.2  贝叶斯推理   338
12.3  朴素贝叶斯   339
12.3.1  贝叶斯理论概述   340
12.3.2  贝叶斯与朴素贝叶斯   341
12.3.3  使用朴素贝叶斯建立一个可扩展的分类器   341
12.4  决策树   349
12.5  本章小结   354
3章  使用Spark MLlib对数据进行聚类分析   355
13.1  无监督学习   355
13.2  聚类技术   357
13.3  基于中心的聚类(CC)   358
13.3.1  CC算法面临的挑战   358
13.3.2  K-均值算法是如何工作的   358
13.4  分层聚类(HC)   366
13.5  基于分布的聚类(DC)   367
13.6  确定聚类的数量   372
13.7  聚类算法之间的比较分析   373
13.8  提交用于聚类分析的Spark作业   374
13.9  本章小结   374
4章  使用Spark ML进行文本分析   376
14.1  理解文本分析   376
14.2  转换器与评估器   378
14.2.1  标准转换器   378
14.2.2  评估转换器   379
14.3  分词   381
14.4  StopWordsRemover   383
14.5  NGram   385
14.6  TF-IDF   386
14.6.1  HashingTF   387
14.6.2  逆文档频率(IDF)   388
14.7  Word2Vec   390
14.8  CountVectorizer   392
14.9  使用LDA进行主题建模   393
14.10  文本分类实现   395
14.11  本章小结   400
5章  Spark调优   402
15.1  监控Spark作业   402
15.1.1  Spark Web接口   402
15.1.2  使用Web UI实现Spark应用的可视化   412
15.2  Spark配置   417
15.2.1  Spark属性   418
15.2.2  环境变量   419
15.2.3  日志   420
15.3  Spark应用开发中的常见错误   420
15.4  优化技术   425
15.4.1  数据序列化   425
15.4.2  内存优化   428
15.5  本章小结   434
6章  该聊聊集群了——在集群环境中部署Spark   435
16.1  集群中的Spark架构   435
16.1.1  Spark生态简述   436
16.1.2  集群设计   437
16.1.3  集群管理   440
16.2  在集群中部署Spark应用   444
16.2.1  提交Spark作业   445
16.2.2  Hadoop YARN   450
16.2.3  Apache Mesos   457
16.2.4  在AWS上部署   459
16.3  本章小结   464
7章  Spark测试与调试   465
17.1  在分布式环境中进行测试   465
17.2  测试Spark应用   468
17.2.1  测试Scala方法   468
17.2.2  单元测试   472
17.2.3  测试Spark应用   473
17.2.4  在Windows环境配置
Hadoop运行时   481
17.3  调试Spark应用   483
17.3.1  使用Spark recap的log4j
进行日志记录   483
17.3.2  调试Spark应用   488
17.4  本章小结   495
8章  PySpark与SparkR   496
18.1  PySpark简介   496
18.2  安装及配置   497
18.2.1  设置SPARK_HOME   497
18.2.2  在Python IDE中设置PySpark   498
18.2.3  开始使用PySpark   501
18.2.4  使用数据帧和RDD   502
18.2.5  在PySpark中编写UDF   506
18.2.6  使用K-均值聚类算法进行分析   511
18.3  SparkR简介   517
18.3.1  为何是SparkR   517
18.3.2  安装与配置   518
18.3.3  开始使用SparkR   519
18.3.4  使用外部数据源API   520
18.3.5  数据操作   521
18.3.6  查询SparkR数据帧   523
18.3.7  在RStudio中可视化数据   525
18.4  本章小结   527
9章  不错机器学习最佳实践   529
19.1  机器学习最佳实践   529
19.1.1  过拟合与欠拟合   530
19.1.2  Spark MLlib与SparkML调优   531
19.1.3  为应用选择合适的算法   532
19.1.4  选择算法时的考量   533
19.1.5  选择算法时先检查数据   534
19.2  ML模型的超参调整   536
19.2.1  超参调整   536
19.2.2  网格搜索参数调整   537
19.2.3  交叉检验   538
19.2.4  信用风险分析——一个超参调整的例子   539
19.3  一个Spark推荐系统   548
19.4  主题建模——文本聚类的最佳实践   555
19.4.1  LDA是如何工作的?   555
19.4.2  基于Spark MLlib的主题建模   557
19.5  本章小结   568
附录A  使用Alluxio加速Spark   569
附录B  利用Apache Zeppelin进行交互式数据分析   583

商品参数
基本信息
出版社 清华大学出版社
ISBN 9787302551966
条码 9787302551966
编者 [德] 雷扎尔·卡里姆(Md. Rezaul Karim) [美] 斯里达尔·阿拉(Sridhar Alla) 著 史跃东 译
出版年月 2020-06-01 00:00:00.0
开本 其他
装帧 平装
页数 624
字数 996
版次 1
印次 1
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]