作者:Sandy Ryza

我不想我的人生有很多遗憾。2011年的某个慵懒的时刻,我在正绞尽脑汁地想如何把高难度的离散优化问题最优地分配给计算机集群处理,真是很难想到有什么好方法。我的导师跟我讲,他听说有个叫Spark的新技术,可我基本上没当回事。Spark的想法太好了,让人觉得有点儿不靠谱。就这样,我很快又回去接着写MapReduce的本科毕业论文了。时光荏苒,Spark和我都渐渐成熟,但我们之间有一个已然成为冉冉之星,这让人不禁感叹“Spark”(星星之火)这个双关语是多么贴切。两年后,Spark的价值举世皆知!

Spark的前辈有很多,从MPI到MapReduce。利用这些计算框架,我们写的程序可以充分利用大量资源,但不需要关心分布式系统的实现细节。数据处理的需求促进了这些技术框架的发展。同样,大数据领域也和这些框架关系密切,这些框架界定了大数据的范围。Spark有望更进一步,让写分布式程序就像写普通程序一样。

Spark能大大提升ETL流水作业的性能,并把MapReduce程序员从每天问天天不灵、问地地不应的绝望痛苦中解救出来。对我而言,Spark的激动人心之处在于,它真正打开了复杂数据分析的大门。Spark带来了支持迭代式计算和交互式探索的模式。利用这一开源计算框架,数据科学家终于可以在大数据集上高效地工作了。

我认为数据科学教学最有效的方法是利用实例。为此,我和同事一起编撰了这本关于实际应用的书,希望它能涵盖大规模数据分析中最常用的算法、数据集和设计模式。阅读本书时不必一页一页地看,可以根据工作需要或按兴趣直接翻到相关章节。

本书内容

第1章结合数据科学和大数据分析的广阔背景来讨论Spark。随后各章在介绍Spark数据分析时都自成一体。第2 章通过数据清洗这一使用场景来介绍用Spark 和Scala 进行数据处理的基础知识。接下来几章深入讨论如何将Spark 用于机器学习,介绍了常见应用中几个最常用的算法。其余几章则收集了一些更新颖的应用,比如通过文本隐含语义关系来查询Wikipedia 或分析基因数据。

使用代码示例

补充材料(代码示例、练习、勘误表等)可以从https://github.com/sryza/aas 下载。

本书是要帮你完成工作的。一般来说,如果本书提供了示例代码,你可以把它用在你的程序或文档中。除非你使用了很大一部分代码,否则无需联系我们获得许可。比如,用本书的几个代码片段写一个程序就无需获得许可,销售或分发O’Reilly 图书的示例光盘则需要获得许可;引用本书中的示例代码回答问题无需获得许可,将书中大量的代码放到你的产品文档中则需要获得许可。

我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和ISBN。比如:“Advanced Analytics with Spark by Sandy Ryza, Uri Laserson, Sean Owen, and Josh Wills (O’Reilly). Copyright 2015 Sandy Ryza, Uri Laserson, Sean Owen, and Josh Wills, 978-1-491-91276-8.”

如果你觉得自己对示例代码的用法超出了上述许可的范围,欢迎你通过permissions@ oreilly.com 与我们联系。

Safari® Books Online

Safari Books Online(http://safaribooksonline.com)是应运而生的数字图书馆。它同时以图书和视频的形式出版世界顶级技术和商务作家的专业作品。技术专家、软件开发人员、Web 设计师、商务人士和创意专家等,在开展调研、解决问题、学习和认证培训时,都将Safari Books Online 视作获取资料的首选渠道。

对于组织团体、政府机构和个人,Safari Books Online 提供各种产品组合和灵活的定价策略。

用户可通过一个功能完备的数据库检索系统访问O’Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 以及其他几十家出版社(https://www.safaribooksonline.com/our-library/)的上千种图书、培训视频和正式出版之前的书稿。要了解Safari Books Online 的更多信息, 我们网上见。

联系我们

请把对本书的评价和问题发给出版社。

美国:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中国:

北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)

奥莱利技术咨询(北京)有限公司

O’Reilly 的每一本书都有专属网页,你可以在那儿找到本书的相关信息,包括勘误表、示例代码以及其他信息。本书的网站地址是:

http://shop.oreilly.com/product/0636920035091.do

对于本书的评论和技术性问题,请发送电子邮件到:

bookquestions@oreilly.com

要了解更多O’Reilly 图书、培训课程、会议和新闻的信息,请访问以下网站:

http://www.oreilly.com

我们在Facebook 的地址如下:

http://facebook.com/oreilly

请关注我们的Twitter 动态:

http://twitter.com/oreillymedia

我们的YouTube 视频地址如下:

http://www.youtube.com/oreillymedia

致谢

如果没有Apache Spark 和MLlib,就没有本书。所以我们应该感谢开发了Spark 和MLlib 并将其开源的团体,也要感谢那些添砖加瓦的数以百计的代码贡献者。

我们还要感谢本书的每一位审阅者,感谢他们花费了大量的时间来审阅本书的内容,感谢他们的专业视角, 他们是Michael Bernico、Ian Buss、Jeremy Freeman、Chris Fregly、Debashish Ghosh、Juliet Hougland、Jonathan Keebler、Frank Nothaft、Nick Pentreath、Kostas Sakellis、Marcelo Vanzin 和另一位Juliet Hougland。谢谢你们所有人!我们欠你们一个大人情!你们的努力大大改进了本书的结构和质量。

我(Sandy)还要感谢Jordan Pinkus 和Richard Wang,你们帮助我完成了风险分析章节的原理部分。

感谢Marie Beaugureau 和O’Reilly 出版社在本书出版和发行过程中贡献的宝贵经验和大力支持!