原书序言

Spark对数据科学领域的影响令人震惊,Spark已然成为大数据架构的全能内核。Spark 1.0发布之时,我们就将其作为巴克莱的核心技术之一,这在当时被认为是一个大胆(抑或鲁莽)的举动。而现在,Spark已被认定为开展大数据科学项目的基础工具。

随着数据科学作为一项活动和一个公认的术语发展普及,人们对“独角兽数据科学家”(unicorn data scientist)的讨论也日益增多。独角兽数据科学家既精通数学又擅长编程,简直令人惊叹。显然,这种人才很难找到,要留住更难。我的团队更多考虑的是以下3个数据科学技能:模式识别、分布式计算和自动化。如果说数据科学是研究从生产的数据中获取见解,那么你需要从一开始就能够利用这3个技能来开发数据应用。使用无法随数据进行扩展的机器学习方法,或者构建需要重新编码才能达到生产质量的分析内核,都毫无意义!我们需要一位独角兽数据科学家或者一个独角兽数据科学团队(我倾向于此)来做这项工作。

Spark就是“独角兽技术”。没有任何一种语言可以像 Spark那样,不仅可以优雅地表达分析概念、毫不费力地将数据规模扩展到大数据,而且可以自然产出产品级别的代码(利用Scala API)。通过Spark,我们用几行代码就可以组建一个模型;在集群上运行与笔记本电脑上的测试代码完全相同的代码;构建稳定的、经过单元测试的、可以在关键业务用例中运行的JVM应用。Scala函数式编程与Spark抽象的结合具有独特、强大的功能,这是过去3年我们团队取得成功的重要因素。

Spark在数据科学领域的应用非常强大,但相关的教程或图书却比较少,我们能搜索到的往往也仅限于对Spark API和库的介绍性资料。你很难或压根找不到有关Spark如何适应广泛的架构,或者如何可持续地管理数据ETL的相关资料。

在阅读本书时,你会发现本书采用的实践方法与其他的书截然不同。本书的每一章都是一项新的挑战,每一章的阅读过程都是一次全新的探索之旅,结果只有经过探索才可获知。本书从一开始就清楚地阐述了正确开展数据科学的重要意义。这是一本为有实践需求的人而编写的Spark教程,这些人想要从事确实会对他们的工作产生实质影响的数据科学工作。希望你们喜欢这本书。

——哈里 · 鲍威尔(Harry Powell)

巴克莱银行高级分析主管