Spark全栈数据分析 - (EPUB全文下载)

文件大小:0.41 mb。
文件格式:epub 格式。
书籍内容:

Spark全栈数据分析
第Ⅰ部分 准备工作
第Ⅱ部分 攀登金字塔
附录A 安装手册
关于作者
封面介绍
第Ⅰ部分 准备工作
图Ⅰ-1 英雄的历程,来自维基百科(https://en.wikipedia.org/wiki/Hero%27s_journey)
第1章 理论
我们一直在实践中探寻更好的软件开发方法,同时也身体力行地帮助他人。由此我们建立了如下价值观:
个体和互动高于流程和工具;
工作的软件高于详尽的文档;
客户合作高于合同谈判;
响应变化高于遵循计划。
也就是说,尽管右项有价值,但我们更重视左项的价值。
——敏捷软件开发宣言(http://agilemanifesto.org) [1]
导论
敏捷数据科学(Agile Data Science)是一种围绕网络应用开发展开的数据科学实践。敏捷数据科学认为,适用于在机构中发挥作用的数据科学过程的最有效的输出应为网络应用程序。它还认为应用开发是数据科学家的基本技能。因此,从事数据科学变成了构建用于描述应用研究过程的应用程序,包括快速的原型设计、探索性数据分析、交互式可视化以及应用机器学习。
敏捷开发已经成为当今软件交付的实际方式。敏捷开发包括一系列成熟的方法学,比如Scrum,这些方法学提供了以小增量构建出优秀软件的框架。已经有人尝试过将软件的敏捷开发应用到数据科学中,但是结果并不理想。对于敏捷过程的产物而言,交付用于生产环境的软件和影响决策的认知是截然不同的。由于我们需要认知来影响决策,因此数据科学有了不确定性因素。对于软件来说,我们有“完成”的概念,但是软件还是缺了些什么,毕竟软件不能产出真实的、影响决策的认知。正如数据科学家Daniel Tunkelang所说:“影响决策的认知必然比软件工程松散。”Scrum和其他一些敏捷开发方法学并没有很好地处理这种不确定性。简单来说,敏捷数据科学不能直接照搬软件的敏捷开发。这就是本书创作的动机:提供一种适合数据科学的不确定性的新方法学,并指导如何将其应用到实践中,我们会通过实际的软件开发来展示其中的一些基本原则。
为了将敏捷开发经验应用到数据科学实践中,我尝试提出了敏捷数据科学“宣言”这样一套严谨的方法。这些原则不仅仅适用于数据科学家在生产中构建数据产品。网络应用程序是在机构内和机构间共享能影响决策的认知的最佳形式。
敏捷数据科学不仅仅包括交付能用的软件,还包括更好地把数据科学整合到机构内其他团队的开发中。数据科学与工程之间存在长期的错位,数据科学团队在进行探索性的数据分析和应用研究,工程团队却经常不理解数据科学团队在做什么。同时,工程团队也常常不确定该做些什么,这样就造成了“瀑布的拉力”,敏捷开发的项目似乎也呈现出了瀑布模型的特征。敏捷数据科学把这两种团队连接到了一起,拧成了一股绳。
这本书也是关于“大数据”的。敏捷数据科学是一种开发方法学,可以应对基于大规模数据构建数据分析应用的各种不可预知的情况。它是操作Spark进行数据提炼的理论与技术指南,让我们能在公司内充分发挥“大数据”的力量。数据仓库级别的运算给了我们巨大的存储空间和丰富的计算资源,现在我们可以解决需要对史无前例的数据量进行存储和处理的新问题了。我们的新工具包括更强大的处理器、更大容量的存储,以及虚拟化技术、统计学、机器学习技术。如今,通过引入这些新工具,我们可以解决一些以前近乎无解的难题;还可以从原始数据中获得全新的产品,把原始数据提炼为可以转化为利润的认知,在新型的数据分析应用中将这些认知产品化并且应用到生产环境中,这都使我们产生了浓厚的兴趣。这就是数据科学(data science)。
与此同时,在过去的20年中,万维网已经成为了最主要的信息交流媒介。在这段时间中,软件工程领域也发生了“敏捷”革命,应用的构思、构建、维护都与之前大不一样。这些新现象使得许多项目和产品能够按期交付、不超预算,也让小团队和个人开发者能在各行各业中开发出完整的应用。这就是敏捷软件开发(agile software development)。
但是问题也随之而来。操作真实而原始的数据、从事数据科学、进行严肃的研究,这些都很花时间,比敏捷开发的周期(一般是“月”这个量级)要长得多。许多机构的开发迭代周期并没有那么长,也就是说如今应用研究者的进度压力相当大。数据科学受困于例如瀑布模型之类的老式软件工程开发模式的桎梏。
在数据科学和敏捷开发这两股潮流的交汇处,我们的问题和机会都出现了:数据科学属于应用研究,需要在无法给出确切时间计划的情况下竭尽全力,我们如何才能将它和应用的敏捷开发结合起来?数据分析应用的开发管理如何能超越早已被我们抛弃的瀑布模型?我们要如何为未知的、不断演进的数据模型制作应用程序?我们要如何开发新的敏捷开发模型来适应数据科学过程,创造出伟大的产品?
本书尝试整合敏捷开发和大数据集上的数据科学这两个领域;同时将研究和工程融合到一起,产出一些有用的产品。为了实现这一点,本书提出了一套新的敏捷方法学,并且提供了一些使用合适的软件栈构建产品的例子。这套方法学旨在基于最透彻的认知,最大限度地提升软件功能。而本书的软件栈则是一套轻量级的工具集,足以应对不确定且不断变化的原始数据,并提供足够的生产力驱动敏捷开发过程的成功实现。本书会继续展示如何使用这套软件栈迭代地创建价值,重新获得敏捷性,从数据中挖掘出价值并转化成真金白银。
敏捷数据科学的目的是让你能掌控大局,确保你的应用研究能产出有用的产品,满足实际用户的需求。
定义
什么是敏捷数据科学(Agile Data Science,ADS)?在本章中,我提出了一种新的开发分析产品的方法学,我在第1版中曾暗示过但是没有明确地表达出来。我们先从敏捷数据科学过程的目标开始说。
方法学
敏捷数据科学的目标是记录探索性数据分析的过程并促进和指导这一过程,以期发现实现一款引人注目的数据分析产品的关键路径,并沿着这条路走下去(见图1-1)。敏捷数据科学深入本质,关注探索性数据分析的过程,并记录在过程中获得的认知。敏捷数据分析把这些当作 ............

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » Spark全栈数据分析 - (EPUB全文下载)