Scala和Spark大数据分析 函数式编程、数据流和机器学习
全新正版 极速发货
¥
99.87
6.3折
¥
158
全新
库存3件
作者(德)雷扎尔·卡里姆,(美)斯里达尔·阿拉 著 史跃东 译
出版社清华大学出版社
ISBN9787302551966
出版时间2020-06
装帧平装
开本32开
定价158元
货号1202097939
上书时间2024-12-03
商品详情
- 品相描述:全新
- 商品描述
-
目录
第1章Scala简介1
1.1Scala的历史与设计目标2
1.2平台与编辑器2
1.3安装与创建Scala3
1.3.1安装Java3
1.3.2Windows4
1.3.3macOS6
1.4Scala:可扩展的编程语言9
1.4.1Scala是面向对象的9
1.4.2Scala是函数式的9
1.4.3Scala是静态类型的9
1.4.4在JVM上运行Scala10
1.4.5Scala可以执行Java代码10
1.4.6Scala可以完成并发与同步处理10
1.5面向Java编程人员的Scala10
1.5.1一切类型都是对象10
1.5.2类型推导11
1.5.3ScalaREPL11
1.5.4嵌套函数13
1.5.5导入语句13
1.5.6作为方法的操作符14
1.5.7方法与参数列表15
1.5.8方法内部的方法15
1.5.9Scala中的构造器16
1.5.10代替静态方法的对象16
1.5.11特质17
1.6面向初学者的Scala19
1.6.1你的第一行代码20
1.6.2交互式运行Scala!21
1.6.3编译21
1.7本章小结22
第2章面向对象的Scala23
2.1Scala中的变量24
2.1.1引用与值不可变性25
2.1.2Scala中的数据类型26
2.2Scala中的方法、类和对象28
2.2.1Scala中的方法28
2.2.2Scala中的类30
2.2.3Scala中的对象30
2.3包与包对象41
2.4Java的互操作性42
2.5模式匹配43
2.6Scala中的隐式45
2.7Scala中的泛型46
2.8SBT与其他构建系统49
2.8.1使用SBT进行构建49
2.8.2Maven与Eclipse50
2.8.3Gradle与Eclipse51
2.9本章小结55
第3章函数式编程概念56
3.1函数式编程简介57
3.2面向数据科学家的函数式Scala59
3.3学习Spark为何要掌握函数式编程和Scala59
3.3.1为何是Spark?59
3.3.2Scala与Spark编程模型60
3.3.3Scala与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.1Scala中的故障与异常73
3.6.2抛出异常73
3.6.3使用try和catch捕获异常73
3.6.4finally74
3.6.5创建Either75
3.6.6Future76
3.6.7执行任务,而非代码块76
3.7函数式编程与数据可变性76
3.8本章小结77
第4章集合API78
4.1Scala集合API78
4.2类型与层次79
4.2.1Traversable79
4.2.2Iterable80
4.2.3Seq、LinearSeq和IndexedSeq80
4.2.4可变型与不可变型80
4.2.5Array82
4.2.6List85
4.2.7Set86
4.2.8Tuple88
4.2.9Map89
4.2.10Option91
4.2.11exists94
4.2.12forall96
4.2.13filter96
4.2.14map97
4.2.15take97
4.2.16groupBy98
4.2.17init98
4.2.18drop98
4.2.19takeWhile98
4.2.20dropWhile99
4.2.21flatMap99
4.3性能特征100
4.3.1集合对象的性能特征100
4.3.2集合对象的内存使用102
4.4Java互操作性103
4.5Scala隐式的使用104
4.6本章小结108
第5章狙击大数据——Spark加入战团109
5.1数据分析简介109
5.2大数据简介114
5.3使用ApacheHadoop进行分布式计算116
5.3.1Hadoop分布式文件系统(HDFS)117
5.3.2MapReduce框架122
5.4ApacheSpark驾到125
5.4.1Sparkcore128
5.4.2SparkSQL128
5.4.3SparkStreaming128
5.4.4SparkGraphX129
5.4.5SparkML129
5.4.6PySpark130
5.4.7SparkR130
5.5本章小结131
第6章开始使用Spark——REPL和RDD132
6.1深入理解ApacheSpark132
6.2安装ApacheSpark136
6.2.1Spark独立服务器模式136
6.2.2基于YARN的Spark140
6.2.3基于Mesos的Spark142
6.3RDD简介142
6.4使用Sparkshell147
6.5action与transformation算子150
6.5.1transformation算子151
6.5.2action算子158
6.6缓存162
6.7加载和保存数据165
6.7.1加载数据165
6.7.2保存RDD166
6.8本章小结166
第7章特殊RDD操作167
7.1RDD的类型167
7.1.1pairRDD170
7.1.2DoubleRDD171
7.1.3SequenceFileRDD172
7.1.4CoGroupedRDD173
7.1.5ShuffledRDD174
7.1.6UnionRDD175
7.1.7HadoopRDD177
7.1.8NewHadoopRDD177
7.2聚合操作178
7.2.1groupByKey180
7.2.2reduceByKey181
7.2.3aggregateByKey182
7.2.4combineByKey182
7.2.5groupByKey、reduceByKey、combineByKey和aggregateByKey之间的对比184
7.3分区与shuffle187
7.3.1分区器188
7.3.2shuffle190
7.4广播变量193
7.4.1创建广播变量194
7.4.2移除广播变量195
7.4.3销毁广播变量195
7.5累加器196
7.6本章小结199
第8章介绍一个小结构——SparkSQL200
8.1SparkSQL与数据帧200
8.2数据帧API与SQLAPI203
8.2.1pivot208
8.2.2filter208
8.2.3用户自定义函数(UDF)209
8.2.4结构化数据210
8.2.5加载和保存数据集213
8.3聚合操作214
8.3.1聚合函数215
8.3.2groupBy222
8.3.3rollup223
8.3.4cube223
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——SparkStreaming238
9.1关于流的简要介绍238
9.1.1至少处理一次240
9.1.2至多处理一次241
9.1.3精确处理一次242
9.2SparkStreaming243
9.2.1StreamingContext245
9.2.2输入流246
9.2.3textFileStream样例247
9.2.4twitterStream样例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.3driver故障恢复259
9.6与流处理平台(ApacheKafka)的互操作261
9.6.1基于接收器的方法261
9.6.2direct流262
9.6.3结构化流示例264
9.7结构化流265
9.7.1处理事件时间(event-time)和延迟数据268
9.7.2容错语义269
9.8本章小结269
第10章万物互联——GraphX270
10.1关于图论的简要介绍270
10.2GraphX275
10.3VertexRDD和EdgeRDD277
10.3.1VertexRDD277
10.3.2EdgeRDD278
10.4图操作280
10.4.1filter281
10.4.2mapValues281
10.4.3aggregateMessages282
10.4.4triangleCount282
10.5PregelAPI284
10.5.1connectedComponents284
10.5.2旅行商问题(TSP)285
10.5.3最短路径286
10.6PageRank290
10.7本章小结291
第11章掌握机器学习SparkMLlib和ML292
11.1机器学习简介292
11.1.1典型的机器学习工作流293
11.1.2机器学习任务294
11.2Spark机器学习API298
11.3特征提取与转换299
11.3.1CountVectorizer301
11.3.2Tokenizer302
11.3.3StopWordsRemover304
11.3.4StringIndexer304
11.3.5OneHotEncoder305
11.3.6SparkMLpipeline306
11.4创建一个简单的pipeline308
11.5无监督机器学习309
11.5.1降维309
11.5.2PCA309
11.6分类314
11.6.1性能度量314
11.6.2使用逻辑回归的多元分类324
11.6.3使用随机森林提升分类精度327
11.7本章小结330
第12章贝叶斯与朴素贝叶斯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
第13章使用SparkMLlib对数据进行聚类分析355
13.1无监督学习355
13.2聚类技术357
13.3基于中心的聚类(CC)358
13.3.1CC算法面临的挑战358
13.3.2K-均值算法是如何工作的358
13.4分层聚类(HC)366
13.5基于分布的聚类(DC)367
13.6确定聚类的数量372
13.7聚类算法之间的比较分析373
13.8提交用于聚类分析的Spark作业374
13.9本章小结374
第14章使用SparkML进行文本分析376
14.1理解文本分析376
14.2转换器与评估器378
14.2.1标准转换器378
14.2.2评估转换器379
14.3分词381
14.4StopWordsRemover383
14.5NGram385
14.6TF-IDF386
14.6.1HashingTF387
14.6.2逆文档频率(IDF)388
14.7Word2Vec390
14.8CountVectorizer392
14.9使用LDA进行主题建模393
14.10文本分类实现395
14.11本章小结400
第15章Spark调优402
15.1监控Spark作业402
15.1.1SparkWeb接口402
15.1.2使用WebUI实现Spark应用的可视化412
15.2Spark配置417
15.2.1Spark属性418
15.2.2环境变量419
15.2.3日志420
15.3Spark应用开发中的常见错误420
15.4优化技术425
15.4.1数据序列化425
15.4.2内存优化428
15.5本章小结434
第16章该聊聊集群了——在集群环境中部署Spark435
16.1集群中的Spark架构435
16.1.1Spark生态简述436
16.1.2集群设计437
16.1.3集群管理440
16.2在集群中部署Spark应用444
16.2.1提交Spark作业445
16.2.2HadoopYARN450
16.2.3ApacheMesos457
16.2.4在AWS上部署459
16.3本章小结464
第17章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使用Sparkrecap的log4j进行日志记录483
17.3.2调试Spark应用488
17.4本章小结495
第18章PySpark与SparkR496
18.1PySpark简介496
18.2安装及配置497
18.2.1设置SPARK_HOME497
18.2.2在PythonIDE中设置PySpark498
18.2.3开始使用PySpark501
18.2.4使用数据帧和RDD502
18.2.5在PySpark中编写UDF506
18.2.6使用K-均值聚类算法进行分析511
18.3SparkR简介517
18.3.1为何是SparkR517
18.3.2安装与配置518
18.3.3开始使用SparkR519
18.3.4使用外部数据源API520
18.3.5数据操作521
18.3.6查询SparkR数据帧523
18.3.7在RStudio中可视化数据525
18.4本章小结527
第19章高级机器学习最佳实践529
19.1机器学习最佳实践529
19.1.1过拟合与欠拟合530
19.1.2SparkMLlib与SparkML调优531
19.1.3为应用选择合适的算法532
19.1.4选择算法时的考量533
19.1.5选择算法时先检查数据534
19.2ML模型的超参调整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.1LDA是如何工作的?555
19.4.2基于SparkMLlib的主题建模557
19.5本章小结568
附录A使用Alluxio加速Spark569
附录B利用ApacheZeppelin进行交互式数据分析583
内容摘要
本书介绍Spark应用开发的面向对象和函数式编程概念,讨论RDD和DataFrame基本抽象,讲述如何使用SparkSQL、GraphX和Spark来开发可扩展的、容错的流式应用程序,最后介绍监控、配置、调试、测试和开发等高级主题。通过本书的学习,你将能使用SparkR和PySparkAPI开发Spark应用程序,使用Zeppelin进行交互式数据分析,使用Alluxio进行内存数据处理,将透彻理解Spark,并能对海量数据执行全栈数据分析,最终成为数据科学家。
主编推荐
"近年来,Scala得以迅速流行,在数据科学和分析领域势头更盛。基于Scala的Spark被广泛应用于生产环境,海量数据的分析可瞬间完成!本书全面系统地介绍Spark应用开发的面向对象和函数式编程概念,指导你用Scala编写强大的Spark程序。本书瞄准最前沿的技术,包含Spark SQL、结构流、graphX和Spark MLib等所有API。本书面向想利用Scala和Spark执行数据分析的人士。
? 本书包含大量精妙的、紧贴实用的大数据分析问题,并说明如何使用Hadoop生态系统上的Scala解决这些问题。
? 一本十分有用的大块头书籍,它呈现概念,并透彻地讲述如何实现概念。
? 本书内容丰富,讨论了PySpark、SparkR、Alixuio和Zeppelin,包罗一切。
? 学习将函数式编程和面向对象概念融为一体的精妙Scala类型系统。
? 处理大范围的应用,从简单的批处理、流处理乃至机器学习
? 分析最常见的用例和一些复杂用例,使用Spark执行大规模数据分析
"
— 没有更多了 —
以下为对购买帮助不大的评价