登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書

『簡體書』Scala和Spark大数据分析 函数式编程、数据流和机器学习

書城自編碼: 3518925
分類:簡體書→大陸圖書→計算機/網絡數據庫
作者: [德] 雷扎尔·卡里姆[Md.,Rezaul,Karim]
國際書號(ISBN): 9787302551966
出版社: 清华大学出版社
出版日期: 2020-06-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 208.6

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
清代“古今字”学术史研究
《 清代“古今字”学术史研究 》

售價:HK$ 147.2
太空图鉴
《 太空图鉴 》

售價:HK$ 101.2
古代战争:重现金戈铁马的史诗画卷
《 古代战争:重现金戈铁马的史诗画卷 》

售價:HK$ 78.2
梁晓声读书与做人
《 梁晓声读书与做人 》

售價:HK$ 59.8
出土文献与古文字教程
《 出土文献与古文字教程 》

售價:HK$ 227.7
我的彩铅好有趣.精美小物简单画
《 我的彩铅好有趣.精美小物简单画 》

售價:HK$ 56.1
文物收藏:纵览镌刻文明的千年印迹
《 文物收藏:纵览镌刻文明的千年印迹 》

售價:HK$ 78.2
湖畔的女人们
《 湖畔的女人们 》

售價:HK$ 64.4

 

編輯推薦:
近几年来,Scala得到广泛运用,在数据科学和分析领域的应用更是如火如荼。基于Scala构建的大数据处理框架Spark获得广泛认可,在产品中得到大量应用。如果你想借助Scala和Spark的卓越能力来处理大数据,本书将是你的理想选择。
本书开篇介绍Scala语言,指导你更好地理解面向对象和函数式编程等在开发Spark应用时必须掌握的概念。此后转向Spark,介绍Spark的核心抽象概念,如RDD和数据帧。利用这些知识,你可更好地使用Spark SQL、GraphX和Spark结构化流等技术来分析结构化和非结构化数据,开发出具备可伸缩性和容错能力的流式应用。*后,本书探讨一些高级主题,如Spark监控、配置、调试、测试和部署等。
通过本书,你将学会用SparkR和PySpark API来开发Spark应用,用Zeppelin进行交互式数据分析,以及用Alluxio进行内存数据处理等。
在完成本书的学习后,你将全面深入地理解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年的研发领域工作经验,并在如下算法和数据结构领域具有深厚的技术背景:CC 、Java、Scala、R、Python、Docker、Mesos、Zeppelin、Hadoop以及MapReduce,并深入学习了如下技术:Spark、Kafka、DCOS、DeepLearning4j以及H2O-Sparking Water。他的研究兴趣包括机器学习、深度学习、语义网络、关联数据Linked Data、大数据以及生物信息学。同时,他还是Packt出版社出版的以下两本书籍的作者:
● Large-Scale Machine Learning with Spark
● Deep Learning with TensorFlow
Md. Rezaul Karim 是德国Fraunhofer FIT的研究学者,也是德国亚琛工业大学的博士学位研究生预科生。他拥有计算机科学的学士与硕士学位。在加盟Fraunhofer FIT之前,他曾作为研究员任职于爱尔兰的数据分析深入研究中心。更早之前,他还担任过三星电子公司全球研究中心的首席工程师;该研究中心分布于韩国、印度、越南、土耳其以及孟加拉。再早之前,他还在韩国庆熙大学的数据库实验室担任过助理研究员,在韩国的BMTech21公司担任过研发工程师,在孟加拉国的i2软件技术公司担任过软件工程师。
Karim拥有超过8年的研发领域工作经验,并在如下算法和数据结构领域具有深厚的技术背景:CC 、Java、Scala、R、Python、Docker、Mesos、Zeppelin、Hadoop以及MapReduce,并深入学习了如下技术:Spark、Kafka、DCOS、DeepLearning4j以及H2O-Sparking Water。他的研究兴趣包括机器学习、深度学习、语义网络、关联数据Linked Data、大数据以及生物信息学。同时,他还是Packt出版社出版的以下两本书籍的作者:
● Large-Scale Machine Learning with Spark
● Deep Learning with TensorFlow
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、机器学习、文本分析、分布式计算以及高性能计算等领域。
目錄
第1章 Scala简介1
1.1 Scala的历史与设计目标2
1.2 平台与编辑器2
1.3 安装与创建Scala3
1.3.1 安装Java3
1.3.2 Windows4
1.3.3 macOS6
1.4 Scala:可扩展的编程语言9
1.4.1 Scala是面向对象的9
1.4.2 Scala是函数式的9
1.4.3 Scala是静态类型的9
1.4.4 在JVM上运行Scala10
1.4.5 Scala可以执行Java代码10
1.4.6 Scala可以完成并发与同步处理10
1.5 面向Java编程人员的Scala10
1.5.1 一切类型都是对象10
1.5.2 类型推导11
1.5.3 Scala REPL11
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 面向初学者的Scala19
1.6.1 你的第一行代码20
1.6.2 交互式运行Scala!21
1.6.3 编译21
1.7 本章小结22
第2章 面向对象的Scala23
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与Eclipse50
2.8.3 Gradle与Eclipse51
2.9 本章小结55
第3章 函数式编程概念56
3.1 函数式编程简介57
3.2 面向数据科学家的函数式Scala59
3.3 学习Spark为何要掌握函数式编程和Scala59
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 finally74
3.6.5 创建Either75
3.6.6 Future76
3.6.7 执行任务,而非代码块76
3.7 函数式编程与数据可变性76
3.8 本章小结77
第4章 集合API78
4.1 Scala集合API78
4.2 类型与层次79
4.2.1 Traversable79
4.2.2 Iterable80
4.2.3 Seq、LinearSeq和IndexedSeq80
4.2.4 可变型与不可变型80
4.2.5 Array82
4.2.6 List85
4.2.7 Set86
4.2.8 Tuple88
4.2.9 Map89
4.2.10 Option91
4.2.11 exists94
4.2.12 forall96
4.2.13 filter96
4.2.14 map97
4.2.15 take97
4.2.16 groupBy98
4.2.17 init98
4.2.18 drop98
4.2.19 takeWhile98
4.2.20 dropWhile99
4.2.21 flatMap99
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分布式文件系统HDFS117
5.3.2 MapReduce框架122
5.4 Apache Spark驾到125
5.4.1 Spark core128
5.4.2 Spark SQL128
5.4.3 Spark Streaming128
5.4.4 Spark GraphX129
5.4.5 Spark ML129
5.4.6 PySpark130
5.4.7 SparkR130
5.5 本章小结131
第6章 开始使用SparkREPL和RDD132
6.1 深入理解Apache Spark132
6.2 安装Apache Spark136
6.2.1 Spark独立服务器模式136
6.2.2 基于YARN的Spark140
6.2.3 基于Mesos的Spark142
6.3 RDD简介142
6.4 使用Spark shell147
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 保存RDD166
6.8 本章小结166
第7章 特殊RDD操作167
7.1 RDD的类型167
7.1.1 pairRDD170
7.1.2 DoubleRDD171
7.1.3 SequenceFileRDD172
7.1.4 CoGroupedRDD173
7.1.5 ShuffledRDD174
7.1.6 UnionRDD175
7.1.7 HadoopRDD177
7.1.8 NewHadoopRDD177
7.2 聚合操作178
7.2.1 groupByKey180
7.2.2 reduceByKey181
7.2.3 aggregateByKey182
7.2.4 combineByKey182
7.2.5 groupByKey、reduceByKey、combineByKey和aggregateByKey之间的对比184
7.3 分区与shuffle187
7.3.1 分区器188
7.3.2 shuffle190
7.4 广播变量193
7.4.1 创建广播变量194
7.4.2 移除广播变量195
7.4.3 销毁广播变量195
7.5 累加器196
7.6 本章小结199
第8章 介绍一个小结构Spark SQL200
8.1 Spark SQL与数据帧200
8.2 数据帧API与SQL API203
8.2.1 pivot208
8.2.2 filter208
8.2.3 用户自定义函数UDF209
8.2.4 结构化数据210
8.2.5 加载和保存数据集213
8.3 聚合操作214
8.3.1 聚合函数215
8.3.2 groupBy222
8.3.3 rollup223
8.3.4 cube223
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章 让我流起来,ScottySpark Streaming238
9.1 关于流的简要介绍238
9.1.1 至少处理一次240
9.1.2 至多处理一次241
9.1.3 精确处理一次242
9.2 Spark Streaming243
9.2.1 StreamingContext245
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
第10章 万物互联GraphX270
10.1 关于图论的简要介绍270
10.2 GraphX275
10.3 VertexRDD和EdgeRDD277
10.3.1 VertexRDD277
10.3.2 EdgeRDD278
10.4 图操作280
10.4.1 filter281
10.4.2 mapValues281
10.4.3 aggregateMessages282
10.4.4 triangleCount282
10.5 Pregel API284
10.5.1 connectedComponents284
10.5.2 旅行商问题TSP285
10.5.3 最短路径286
10.6 PageRank290
10.7 本章小结291
第11章 掌握机器学习Spark MLlib
和ML292
11.1 机器学习简介292
11.1.1 典型的机器学习工作流293
11.1.2 机器学习任务294
11.2 Spark机器学习API298
11.3 特征提取与转换299
11.3.1 CountVectorizer301
11.3.2 Tokenizer302
11.3.3 StopWordsRemover304
11.3.4 StringIndexer304
11.3.5 OneHotEncoder305
11.3.6 Spark ML pipeline306
11.4 创建一个简单的pipeline308
11.5 无监督机器学习309
11.5.1 降维309
11.5.2 PCA309
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章 使用Spark MLlib对数据进行聚类分析355
13.1 无监督学习355
13.2 聚类技术357
13.3 基于中心的聚类CC358
13.3.1 CC算法面临的挑战358
13.3.2 K-均值算法是如何工作的358
13.4 分层聚类HC366
13.5 基于分布的聚类DC367
13.6 确定聚类的数量372
13.7 聚类算法之间的比较分析373
13.8 提交用于聚类分析的Spark作业374
13.9 本章小结374
第14章 使用Spark ML进行文本分析376
14.1 理解文本分析376
14.2 转换器与评估器378
14.2.1 标准转换器378
14.2.2 评估转换器379
14.3 分词381
14.4 StopWordsRemover383
14.5 NGram385
14.6 TF-IDF386
14.6.1 HashingTF387
14.6.2 逆文档频率IDF388
14.7 Word2Vec390
14.8 CountVectorizer392
14.9 使用LDA进行主题建模393
14.10 文本分类实现395
14.11 本章小结400
第15章 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
第16章 该聊聊集群了在集群环境中部署Spark435
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 YARN450
16.2.3 Apache Mesos457
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 使用Spark recap的log4j
进行日志记录483
17.3.2 调试Spark应用488
17.4 本章小结495
第18章 PySpark与SparkR496
18.1 PySpark简介496
18.2 安装及配置497
18.2.1 设置SPARK_HOME497
18.2.2 在Python IDE中设置PySpark498
18.2.3 开始使用PySpark501
18.2.4 使用数据帧和RDD502
18.2.5 在PySpark中编写UDF506
18.2.6 使用K-均值聚类算法进行分析511
18.3 SparkR简介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.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加速Spark569
附录B 利用Apache Zeppelin进行交互式数据分析583
內容試閱
随着数据量的持续膨胀,企业决策也变得日益复杂。因此,如果你还想使用传统的分析方法来洞察数据从而推动企业前进的话,那么,不断增长的数据将给你带来巨大障碍。现在,大数据涉及的领域太广泛了,它与各种框架之间存在千丝万缕的关系。以至于大数据的定义也与这些框架能够处理的范围产生了联系。无论你在检查来自百万访问者的点击流数据,从而优化在线广告的投放位置,还是过滤数十亿的事务数据,以便鉴定危险或欺诈信息,这些行为都需要高级的分析技术,例如机器学习和图运算,从而能在远超以往的大量数据中进行自动洞察与分析操作。
作为大数据处理、分析以及跨越学术界和工业界的数据科学等领域的事实上的标准,Apache Spark提供了机器学习和图运算程序包,从而能让企业基于高可扩展性及集群化的计算机设备,轻松地处理诸多复杂问题。不仅如此,Spark还允许你使用Scala语言来编写分布式程序,就像为Spark编写普通程序那样简单。Spark为ETL数据传输带来了巨大的性能提升,也能让那些原来的MapReduce程序员们从Hadoop复杂的编程模型中部分解脱出来。
在《Scala和Spark大数据分析 函数式编程、数据流和机器学习》中,我们将竭力为你带来基于Spark和Scala的最先进数据分析技术,包括机器学习、图运算、流处理以及Spark SQL。当然,也包括MLlib、ML、SQL、GraphX以及其他程序库。
我们先从Scala开始,然后逐步进入Spark部分,最后将涵盖基于Spark和Scala的大数据处理的一些高级主题。在附录中,将扩展你的Scala知识,介绍SparkR、PySpark、Apache Zeppelin以及基于内存的Alluxio等。《Scala和Spark大数据分析 函数式编程、数据流和机器学习》的内容并不需要你逐章完整阅读,你可以根据自己的兴趣,随意跳跃性翻阅感兴趣的章节。
祝你阅读愉快!
内容简介
第1章Scala简介将基于Scala语言使用Spark的API,从而教给你大数据处理技术。Spark本身就是用Scala编写的,因此,我们很自然地以Scala的简介作为《Scala和Spark大数据分析 函数式编程、数据流和机器学习》的开始。简介包括Scala的历史、设计目的,以及如何在Windows、Linux以及macOS上安装Scala。此后,我们将探讨Scala的Web框架。再后对Java和Scala做对比分析。最后将研究Scala程序设计从而开始使用Scala。
第2章面向对象的Scala讲述面向对象的程序设计OOP范例,提供了一个全新的抽象层。简单来说,该章描述面向对象程序设计语言的一些强大之处:可发现性、模块性和可扩展性。尤其将讲述如何处理Scala中的变量、方法、类和对象。还讨论包、包对象、特征以及特征的线性化。当然,还有与Java的互操作性。
第3章函数式编程概念将列出Scala中函数式编程的基本概念。具体而言,我们将学习如下几个议题,Scala为何是数据科学的兵工厂,为何学习Spark范例、纯函数以及高阶函数Higher-Order Function,HOF很重要。同时将展示在真实世界中使用HOF的用户案例。然后,我们将了解如何使用Scala的标准库函数,来在集合之外处理高阶函数中的异常。最后,将学习函数式Scala如何影响对象的可变性。
第4章集合API将介绍一个会影响大部分Scala用户的特性集合API。该特性很强大且颇具弹性。我们将展示Scala集合API的能力,以及如何有序地使用它来处理不同的数据类型,并解决各种复杂问题。在该章中,我们将探讨Scala的集合API、类型以及层级,还有一些性能方面的议题,与Java的互操作性,还有Scala的隐式转换。
第5章狙击大数据Spark加入战团将简要描述数据分析与大数据。将讨论大数据带来的挑战如何被分布式计算以及函数式编程所处理。我们将介绍谷歌的MapReduce、Apache Hadoop和Apache Spark。我们也将了解到为何Apache Spark会首先被创建出来;面对大数据分析与处理的挑战,Apache Spark又能带来怎样的价值。
第6章开始使用SparkREPL和RDD将介绍Spark的工作原理,然后介绍RDDApache Spark的基本抽象概念,讲述它们是怎样的分布式集合,以及如何使用类似Scala的API进行操作。我们也将了解Apache Spark在部署方面的一些选项,以及如何以Spark shell方式在本地运行。我们也将深入学习Apache Spark的一些内部原理,例如RDD的含义、DAG和RDD的血统机制、transformation算子以及action算子。
第7章特殊RDD操作将关注RDD是如何被冗余并满足各种不同需求的,以及RDD如何提供新功能。不仅如此,我们还将了解Spark提供的其他有用对象,如广播变量和累加器accumulator。我们也将学习聚合技术shuffle。
第8章介绍一个小结构Spark SQL将讲解如何使用Spark分析结构化数据,Spark是如何将结构化数据作为RDD的高阶抽象来处理的,以及Spark SQL的API是如何让查询结构化数据变得简单并足够健壮。还将介绍数据集dataset,讲述数据集、DataFrame以及RDD之间的区别。也将讨论如何使用DataFrame API,从而利用连接操作和窗口函数执行复杂的数据分析。
第9章让我流起来,ScottySpark Streaming将讲述如何使用Spark Streaming,并利用Spark API来高效地处理流式数据。不仅如此,在该章中,还将介绍处理实时数据流的不同方法,列举一个真实的案例来演示来自Twitter的信息是如何被使用和处理的。我们也将看到与Apache Kafka的集成。还将看到结构化的流数据,它们将能为应用提供实时查询功能。
第10章万物互联GraphX旨在使你了解到,真实世界中的许多问题都通过图运算进行建模并加以解决。我们将看到基于Facebook的例子,分析如何使用图论,其中包含Apache Spark的图运算程序库GraphX、VertexRDD、EdgeRDD、图操作、aggregateMessages、triangleCount、Pregel API以及用户案例如PageRank算法等。
第11章掌握机器学习Spark MLlib和ML旨在提供统计机器学习的一些概念性介绍。我们将关注Spark的机器学习API称为Spark MLlib和ML。接下来将讨论如何使用决策树和随机森林算法解决分类问题,以及如何使用线性回归算法解决回归问题。你也将看到,在训练分类模型前,我们是如何在特征提取中使用OneHotEncoder和降维算法来获得好处的。在该章的最后,还将一步步地展示一个例子,来讲述怎样开发一个基于协同过滤的电影推荐系统。
第12章贝叶斯与朴素贝叶斯讲述大数据与机器学习。大数据与机器学习已经成为一个激进的组合,给研究领域无论是学术领域还是工业领域带来巨大影响。大数据给机器学习、数据分析工具以及算法都带来了巨大挑战,因为它们都需要发现真正的价值。但是,基于现有的这些海量数据集来预测未来从来都不是容易的事情。在该章中,我们将深入研究机器学习,并找出如何使用简单但强大的方法,来创建一个具备可扩展性的分类模型,同时将介绍相关的概念,例如多元分类、贝叶斯分类、朴素贝叶斯、决策树,以及朴素贝叶斯与决策树之间的对比分析。
第13章使用Spark MLlib对数据进行聚类分析将介绍常见的聚类算法,并通过大量实例,让你掌握这一机器学习领域中被广泛应用的技术。
第14章使用Spark ML进行文本分析将简要讲解如何使用Spark ML进行文本分析。文本分析是机器学习领域中一个很宽广的区域,它在很多用户场景下都极为有用,例如情感分析、聊天机器人、垃圾邮件检测、自然语言处理NLP以及其他很多场景。我们将学到如何使用Spark进行文本分析,该用例来自包含10 000个样例集合的Twitter数据,我们要对其进行文本分类。我们也将学习LDA隐含狄利克雷分布,这是一项颇为流行的技术,它能从文档中生成对应的主题而不必知晓真实的文档内容,然后我们会基于这些Twitter数据实施文本分类,看一下具体的结果会是怎样的。
第15章Spark调优深入探究Apache Spark的内部机制,我们会觉得在使用Spark时,感觉就像是在使用另一个Scala集合一样,但不要忘了,Spark实际上是在一个集群中运行的。因此,该章将关注如何监控Spark任务,如何进行Spark配置,如何处理Spark应用开发过程中经常遇到的错误,还将介绍一些优化技术。
第16章该聊聊集群了在集群环境中部署Spark将研究Spark及其底层架构是如何在集群中工作的。我们将了解集群中的Spark架构、Spark生态系统以及集群管理等内容。当然,还有如何在独立服务器模式、Mesos、YARN以及AWS集群上部署Spark。我们也将探讨如何在一个基于云的AWS集群上部署应用。
第17章Spark测试与调试将解释分布式应用的测试难度。我们将看到一些处理方法。我们也将看到如何在分布式环境中进行测试,以及如何测试和调试Spark应用。
第18章PySpark与SparkR将涵盖其他两个常用的API。可使用Python或R语言来编写Spark代码,也就是PySpark和SparkR。具体地说,将介绍如何使用PySpark,以及如何与DataFrame API和UDF进行交互,然后我们就可以使用PySpark来执行一些数据分析了。然后将介绍如何使用SparkR,也将介绍如何使用SparkR进行数据处理与操作,以及如何与RDD和DataFrame协同工作。最后,一些数据可视化工作也可以使用SparkR。
第19章高级机器学习最佳实践从理论和实践两个方面探讨Spark机器学习的一些高级议题。我们将看到如何使用网格搜索、交叉检验以及超参调整等方法对机器学习模型进行调优,以获取更好的性能。接下来将研究如何使用ALS来开发一个可扩展的推荐系统。这里,ALS是一个基于模型的推荐系统算法。最后将展示一个主题建模应用,作为文本聚类技术的一个示例。
附录A使用Alluxio加速Spark将展示如何使用Alluxio结合Spark来加快处理速度。Alluxio是一个开源的内存存储系统,它对于很多跨平台的应用都很有用,能提升这些应用的处理速度。我们将研究使用Alluxio的可能性,以及集成Alluxio是如何在我们每次运行Spark任务时,不需要缓存数据就能提供更好性能的。
附录B利用Apache Zeppelin进行交互式数据分析从数据科学的角度出发,讲述交互式可视化数据分析的重要性。Apache Zeppelin是一个基于Web的记事本,可用于交互式和大规模数据分析,它可以使用多后端和解释器。该章将研究如何使用Apache Zeppelin,并将Spark作为其后端解释器,来进行大规模数据分析。
学习《Scala和Spark大数据分析 函数式编程、数据流和机器学习》时所需的准备工作
《Scala和Spark大数据分析 函数式编程、数据流和机器学习》中的所有例子都基于Ubuntu Linux 64位版本,使用Python 2.7和Python 3.5实现,其中使用的TensorFlow函数库版本为1.0.1。《Scala和Spark大数据分析 函数式编程、数据流和机器学习》中展示的源代码是兼容Python 2.7的;兼容Python 3.5 的源代码可从Packt出版社的资料库中自行下载。你也需要如下Python模块最新版本尤佳:
● Spark 2.0.0或更高版本
● Hadoop 2.7或更高版本
● JavaJDK和JRE1.7 1.8
● Scala 2.11.x或更高版本
● Python 2.7 3.4
● R 3.1 以及RStudio 1.0.143或更高版本
● Eclipse Mars、Oxygen或Luna最新版本
● Maven Eclipse plugin 2.9或更高版本
● Maven compiler plugin for Eclipse 2.3.2或更高版本
● Maven assembly plugin for Eclipse 2.4.1或更高版本
操作系统:优先推荐Linux发行版包括Debian、Ubuntu、Fedora、RHEL以及CentOS,更精确地说,对于Ubuntu,推荐版本为64位14.04LTS或更新版本,推荐使用VMWare player 12或Virtual box。可在WindowsXP7810或Mac OS X10.4.7 上运行Spark任务。
硬件配置:处理器核心为i3、i5推荐或i7可获得最佳效果。但是,多核心处理器可以提供更快的数据处理和更好的可扩展性。对于独立服务器模式,需要至少8~16GB的内存推荐配置;对于集群而言,单一的VM或更多的VM则至少需要32GB内存。你也需要有足够的存储来执行工作量大的任务具体取决于要处理的数据集的大小,建议使用的存储至少有50GB的空闲空间用于支持独立服务器模式以及SQL仓库。
《Scala和Spark大数据分析 函数式编程、数据流和机器学习》读者对象
所有期望使用强大的Spark来进行数据分析的人们,都会意识到《Scala和Spark大数据分析 函数式编程、数据流和机器学习》的内容极具价值。你不需要具备Spark或Scala的相关知识,当然,如果你此前就有编程经验的话尤其是掌握其他JVM编程语言,在学习《Scala和Spark大数据分析 函数式编程、数据流和机器学习》的相关概念时,你掌握知识的速度就会比较快。在过去数年间,Scala语言正逐步为人们所接纳采用,一直呈现出稳定的上升态势,在数据科学与分析领域尤其如此。与Scala齐头并进的是Apache Spark,它由Scala语言编写而成,并且在数据分析领域得到了极广泛的应用。《Scala和Spark大数据分析 函数式编程、数据流和机器学习》将帮助你掌握这两种工具,从而让你在大数据处理领域大显身手。
约定
注意:
警示或重要提示。
小技巧:
技巧和诀窍。
读者反馈
我们一直希望能够收到读者的反馈意见。让我们知道你对这本书的看法你喜欢的部分或不喜欢的部分这对我们非常重要。因为它可以帮助我们真正编写出可以充分使用的书籍。如果想向出版社发送反馈,可以直接发送电子邮件至feedback@packtpub.com,并在邮件中注明《Scala和Spark大数据分析 函数式编程、数据流和机器学习》的书名即可。
下载样例代码
可访问http:www.tupwk.com.cndownpage网站,输入《Scala和Spark大数据分析 函数式编程、数据流和机器学习》ISBN或中文书名下载《Scala和Spark大数据分析 函数式编程、数据流和机器学习》的样例代码。
一旦下载完《Scala和Spark大数据分析 函数式编程、数据流和机器学习》的代码文件,就可以使用下列文件的最新版本来解压缩:
● 对于Windows平台而言,可使用WinRAR7-Zip。
● 对于macOS而言,可使用ZipegiZipUnRarX。
● 对于Linux而言,可使用7-ZipPeaZip。
另外,也可扫《Scala和Spark大数据分析 函数式编程、数据流和机器学习》封底二维码下载相关资料。
勘误
尽管我们已经尽了最大努力来确保《Scala和Spark大数据分析 函数式编程、数据流和机器学习》中内容的正确性,但错误依然无法避免。因此,如果你在阅读《Scala和Spark大数据分析 函数式编程、数据流和机器学习》的过程中发现了错误无论是代码错误还是文本错误,都请与我们联系,我们对此将深表感激。
侵权
互联网上版权材料的盗版问题一直存在。我们非常重视知识产权的保护。因此,如果你在互联网上发现了《Scala和Spark大数据分析 函数式编程、数据流和机器学习》任何形式的非法副本,也请立即与我们联系。
问题
如果你在阅读《Scala和Spark大数据分析 函数式编程、数据流和机器学习》的过程中发现了任何问题,请与我们联系。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.