首页 > 代码库 > 敏捷数据科学:用Hadoop创建数据分析应用

敏捷数据科学:用Hadoop创建数据分析应用

敏捷数据科学:用Hadoop创建数据分析应用(数据分析最佳实践入门敏捷大数据首作分步骤|全流程演示思路、工具与方法

【美】Russell Jurney(拉塞尔·朱尔尼) 著  

冯文中 朱洪波 译

ISBN 978-7-121-23619-8

2014年7月出版

定价:49.00元

184

16

编辑推荐

对大数据的挖掘需要投入大量的人力和时间。怎么才能确保构建的是一个正确的模型?通过这本实践指南,你可以学到一套灵活的工具和方法论,在Hadoop上构建数据分析应用。

使用诸如PythonApache PigD3.js等轻量级工具,你的团队能够创建一个敏捷环境来探索数据。我们会开发一个样例应用程序,挖掘你自己的电子邮箱数据。你也会学习到一种迭代式的开发方法,使得你能根据数据中的信息快速切换,进行不同类型的数据分析。书中所有的代码样例都可以在 Heroku 中以 App 形式运行。

■用敏捷式大数据开发方法论创建分析应用

■用数据-价值栈,在一系列敏捷周期中创建价值

■用多种数据结构从单个数据集中提取特征,获取洞察

■用图表可视化数据,通过交互性报表从不同角度展示数据

■用历史数据进行预测,将预测转化为行动

■在每个迭代周期过后获取用户反馈,确保项目方向正确

内容提要

《敏捷数据科学:用Hadoop创建数据分析应用》面向大数据挖掘,以敏捷视角呈现高效构建数据模型的全程实践和思路。在一组以一个真实电子邮箱数据挖掘为例的数据-价值金字塔进阶模式中,你将学到:一整套实用工具及其方法论,可快速实现在Hadoop 上构建数据分析应用;用Python、Apache Pig 及D3.js等轻量级工具创建用于探索数据的敏捷环境;一种可根据数据中信息快速切换,进行不同类型数据分析的迭代式开发方法。

《敏捷数据科学:用Hadoop创建数据分析应用》适合所有与数据工作相关的从业者,同时也适合有志成为数据科学工作者的广大读者作为入门读物。

目录

1 部分 起步 ............................................................... 1

1 理论 .................................................................. 3

敏捷大数据 ............................................................................................................3

BigWords 定义......................................................................................................4

敏捷大数据团队.....................................................................................................5

认识机遇和问题..............................................................................................6

敏捷大数据流程...................................................................................................11

代码检查和结对编程...........................................................................................12

敏捷的场所:开发的效率....................................................................................13

协作空间.......................................................................................................14

私人空间.......................................................................................................14

个人空间.......................................................................................................14

用大幅打印件明确表达想法................................................................................15

2 数据 ............................................................... 17

电子邮件..............................................................................................................17

处理原始数据......................................................................................................18

原始的电子邮件............................................................................................18

结构化与半结构化数据.................................................................................18

SQL......................................................................................................................20

NoSQL.................................................................................................................24

序列化...........................................................................................................24

从演变的模式中抽取和展示特征 ..................................................................25

数据流水线...................................................................................................26

数据透视..............................................................................................................27

社交网络.......................................................................................................28

时间序列.......................................................................................................30

自然语言 .......................................................................................................31

概率...............................................................................................................33

小结 .....................................................................................................................35

3 敏捷开发工具 ................................................... 37

可扩展性= 简洁...................................................................................................37

敏捷大数据处理...................................................................................................38

设置运行Python 的虚拟环境...............................................................................39

使用Avro 对事件进行序列化 ..............................................................................40

Python 中使用Avro..................................................................................40

收集数据..............................................................................................................42

使用Pig 处理数据................................................................................................44

安装Pig.........................................................................................................45

使用MongoDB 发布数据....................................................................................49

安装MongoDB..............................................................................................49

安装MongoDB Java 驱动程序.................................................................50

安装mongo-hadoop.......................................................................................50

Pig MongoDB 推送数据.......................................................................50

使用ElasticSearch 搜索数据 ................................................................................52

安装...............................................................................................................52

使用Wonderdog 整合ElasticSearch Pig ...................................................53

对工作流程的反思...............................................................................................55

轻量级的Web 应用..............................................................................................56

Python Flask .............................................................................................56

展示数据..............................................................................................................58

安装Bootstrap...............................................................................................58

启用Bootstrap...............................................................................................59

使用d3.js nvd3.js 可视化数据..................................................................63

小结.....................................................................................................................64

4 在云端 ............................................................. 65

引言.....................................................................................................................65

GitHub.................................................................................................................67

dotCloud...............................................................................................................67

dotCloudEcho 服务.......................................................................................68

Python工作者服务........................................................................................71

AmazonWeb Services..........................................................................................71

SimpleStorage Service..................................................................................71

ElasticMapReduce........................................................................................72

MongoDB即服务..........................................................................................79

辅助工具(Instrumentation................................................................................81

GoogleAnalytics...........................................................................................81

MortarData ...................................................................................................82

2 部分 登上金字塔 ................................................... 85

5 收集和展示数据 ............................................... 89

整合软件栈..........................................................................................................90

收集并序列化收件箱...........................................................................................90

处理和发布邮件数据...........................................................................................91

在浏览器中显示邮件...........................................................................................93

Flask pymongo 处理邮件数据..............................................................94

使用Jinja2 渲染HTML5 页面 ......................................................................94

敏捷检查点..........................................................................................................98

生成电子邮件清单...............................................................................................99

MongoDB 显示邮件.................................................................................99

对数据展示的分析......................................................................................101

搜索邮件............................................................................................................106

使用PigElasticSearchWonderdog 构建索引....................................... 106

在网页中搜索邮件数据...............................................................................107

结论 ...................................................................................................................108

6 使用图表可视化数据 ....................................... 111

优秀的图表........................................................................................................112

抽取实体:邮件地址.........................................................................................112

抽取邮件.....................................................................................................112

对时间进行可视化 .............................................................................................116

结论...................................................................................................................122

7 利用报表探索数据 .......................................... 123

为数据添加联系.................................................................................................126

TF-IDF 从邮件中提取关键字........................................................................ 133

小结 ...................................................................................................................138

8 预测 .............................................................. 141

预测电子邮件的回复率......................................................................................142

个性化................................................................................................................147

小结...................................................................................................................148

9 驱动行动 ........................................................ 149

好邮件的属性....................................................................................................150

使用朴素贝叶斯方法进行更好的预测............................................................... 150

P(Reply| From To)........................................................................................150

P(Reply| Token).................................................................................................151

实时预测 ............................................................................................................153

记录事件日志....................................................................................................157

小结 ...................................................................................................................157

索引........................................................................... 159

作者简介

作者介绍:Russsel Jurney 在美国和墨西哥的***开始他的数据分析生涯。他开发了一个 Web 应用来分析***的性能。在经历了创业、交互式媒体和新闻业以后,他到了硅谷,在 Ning LinkedIn 开始构建可扩展的数据分析应用。

译者介绍:朱洪波阿里巴巴数据挖掘专家,机器学习团队负责人,司职于解决商业客户对数据的深层需求。纸质书爱好者,相信理性与逻辑的力量。

媒体评论

“在目前“数据科学”被大肆宣传的环境下,读到一本构建数据产品的实践指南让我耳目一新。Russell向我们逐步介绍了他利用数据来解决问题的敏捷哲学。”

—— MatKelcey  matpalm.com博主

前言

我写这本书是为了帮助大家避免重复我犯过的错误,进而防止失败项目的产生。在这本书里面,描述、反映了我在两个不同的Hadoop 服务上构建数据分析应用的经验。

《敏捷数据科学》这本书有三个目标:提供一个用Hadoop 构建数据分析应用的操作指南;帮助团队在大数据项目中以敏捷的形式进行更好的协作;提出一个进行敏捷式大数据分析的先进结构。

读者是谁

《敏捷数据科学》是一门帮助大数据的入门者以及萌芽中的数据科学家,成为数据科学与数据分析团队中更有生产力的成员的课程。它的目标是帮助工程师,分析师和数据科学家以敏捷的形式在Hadoop 上处理大数据。它介绍了一种非常适合大数据的敏捷开发方式。

这本书同样针对需要处理数据并开发软件的程序员。设计师和项目经理可能会特别喜欢本书第一、二、五章,这些章节主要介绍一些敏捷的流程,而没有把关注点放在具体的代码上。

本书假设读者在一个*nix 环境中工作,对于Windows 用户,我们没有提供相应的例子,但他们可以使用Cygwin。一个由用户贡献而且包含所有前置依赖的Linux 镜像,可以从这(https://github.com/charlesflynn/agiledata)获取。读者可以通过这个工具在VirtualBox 里面快速启动一台Linux 机器。

本书如何组织

这本书包含两部分。第一部分介绍数据以及将在本书第二部分用到的工具集。我特意将第一部分写得比较简短,只用了较少的篇幅来介绍这些工具。假如感觉第一部分内容太过简略,也不要担心,本书第二部分将会深入地探索这些工具的用法。下面的章节组成了本书的第一部分:

第一章  理论

介绍敏捷大数据的工作方法。

第二章  数据

介绍本书中将要使用的数据,以及简单的预测方法。

第三章  敏捷开发工具

介绍工具集,并帮助读者将它们在机器上安装好。

第四章  在云端

带领读者将第三章中介绍的工具集扩展到云端,以支持PB 级的数据规模。

本书第二部分是一个利用敏捷大数据的方式来构建数据分析应用的教程。这是一个笔记本形式的指南。在数据- 价值金字塔的每一次上升都遵循着敏捷的原则。我会阐述如何在小的敏捷开发周期里面逐步创造价值。第二部分包含如下的章节:

第五章  收集和展示数据

帮助读者下载电子邮件收件箱数据并将邮件连接到一个web 程序上。

第六章  使用图表可视化数据

让读者逐步在web 程序中创建简单的图表来操纵数据。

第七章 利用报表探索数据

展示如何从数据里面提取实体,并将它们连接在一起,创建可交互的数据报告。

第八章 预测

帮助读者利用之前的成果预测邮件收到回复的概率。

第九章 驱动行动

介绍如何将已有的预测功能扩展成一个完整的实时分类器,来帮助用户写出会被回复的邮件。

本书所使用的约定

以下是本书所使用的排版约定:

斜体(Italic)

表示新的条目、网址、电子邮件地址、文件名和文件扩展名。

等宽字体(Constant width)

在程序代码中使用,同时也会出现在段落内的那些引用程序元素如函数名、数据库、

数据类型、环境变量、声明和关键字等,还会在API、组件及模块名里遇到。

等宽粗字体(Constant with bold)

表示命令或由用户输入的文本。

等宽斜体字(Constant with italic)

表示应该由用户提供的值来代替上下文决定的值的那些文本。

这个图标标志是提示、建议或一般说明。

这个图标表示警告或告示。

使用代码实例

补充材料( 代码示例, 练习等) 请登录https://github.com/rjurney/Agile_Date_Code自行下载。

本书就是要帮读者完成工作的。通常,如果本书包含了代码示例,你可以在你的程序和文档中使用本书中的代码。除非你复制了大段的代码,否则你无须联系我们来取得许可。举个例子,在编写程序时使用了本书中的数块代码是不需要经过许可的。出售或分发来自O’Reilly 图书的示例CD-ROM 是必须经过许可的。引用本书及本书中的示例代码来回答问题是不需要经过许可的。将大量的示例代码整合到你的产品文档中必须经过许可。

我们很感谢但不要求注明出处。出处的格式一般包括标题、作者、出版社和ISBN,例如“由Russell Jurney 写的Agile Data Science(O’Reilly). Copyright 2014 Data SyndromeLLC, 978-1-449-32626-5。”

如果你觉得没有在正常范围内使用代码例子,并且不知是否在上面所说的许可范围内,请随时联系我们:

permissions@oreilly.com

Safari Books Online

Safari Books Online(www.safaribooksonline.com)是一个发布来自全球技术和商业领域的顶尖作者写的书和视频等优质内容的按需数字化图书馆。技术专业人士、软件开发者、网站设计师及商业和创意专业都用Safari Books Online 作为他们的主要研究、解决问题、学习和认证培训资源。

Safari Books Online 提供了一系列产品及针对组织、政府和个人不同的定价方案,订阅者可以访问到成千上万的图书、培训视频及出版前的手稿,这些内容都可以从出版社,如O’Reilly Media、PrenticeHall Professional、Addison-Wesley Professional、MicrosoftPress、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、AdobePress、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 等数据库中搜索而得到,想了解更多关于Safari Books Online 的信息,请在线访问我们。联系我们

对于本书的评论或问题请联系出版商:

美国:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中国:

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

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

我们为本书制作了一个Web 页面,页面中包含了简介、样章,以及其他信息。可以从这里访问这个页面:

http://oreil.ly/agile-data-science。

如果要留言或者提交关于本书的技术问题的反馈,请发邮件至:

bookquestions@oreilly.com。

本书的更多信息、资源、参考文献和新闻,请登录出版社官网:http://www.oreilly.com。

Facebook: http://facebook.com/oreilly

Twitter: http://twitter.com/oreillymedia

YouTube:http://www.youtube.com/oreillymedia__

wKioL1PYuTvTsNjWAAO5i0V2APY579.jpg