标签
内容简介
本书英文原名为 Agile Data Science 2.0: Building Full-Stack Data Analytics Applications with Spark,作者 Russell Jurney 结合自身在 LinkedIn、Ning 等公司构建分析型产品的经验,提出了一套用敏捷开发方式开展数据科学工作的实践方法论。全书以 Spark 为核心处理引擎,串联起从事件数据采集、序列化存储、批处理与流处理,到 MongoDB 发布数据、Elasticsearch 提供搜索、前端图表与报表展示的完整链路,把“数据科学”落在一个真正能交付给用户的分析应用上。 全书分为两大部分。第Ⅰ部分“准备工作”说明敏捷数据科学的方法论与团队角色分工,介绍工具集的选型与本地/云端环境搭建(Vagrant、EC2、Jupyter 笔记本),并交代贯穿全书的示例数据集;涉及 Python 3、JSON 行与 Parquet 序列化、Spark 数据处理、MongoDB、Elasticsearch、Apache Kafka 与 PySpark Streaming 等工具的基本用法。第Ⅱ部分“攀登金字塔”是一份逐步构建分析应用的教程:收集并展示航班记录、加入图表做可视化、通过交互式报表探索数据中的实体关系、对航班准点与否进行预测、部署预测系统,再迭代改进预测效果。附录提供完整的安装手册。 本书并不追求算法的数学深度,而是强调“让数据产生价值”的工程闭环,适合作为数据科学入门者与转岗工程师的第一本全栈实战书。
编辑推荐
市面上的 Spark 书大多止步于算子与调优,这本却难得地把“全栈”两个字落到实处:数据从 Kafka 进来,经 Spark 处理,写进 MongoDB、Elasticsearch,最后由前端图表和报表呈现给用户——一条完整的数据产品链路被拆成九章,按敏捷迭代一步一步走完。 作者的写法很像结对编程:每章都在前一章的应用上再加一层,收集航班记录、画图、做交互式报表、训练准点预测模型、把模型部署上线,再回头改进效果。读者跟着敲完,手里会有一个可以运行、可以演示的东西,而不是一堆零散的知识点。书中还专门讨论了数据科学团队的角色分工、如何设置预期、如何与技术债相处,这些“非技术”内容恰恰是新人最容易踩坑的地方。 需要提醒的是,本书原版写作于 Spark 2.x 与 Python 3 早期年代,涉及的工具版本(Elasticsearch、Kafka、MongoDB、Jupyter)在今天看来偏旧,环境搭建部分可能需要自行排错。建议把它当作方法论与工程结构的参考书,而不是版本速查手册;附录的安装手册也最好先在本机或容器里跑通,再进入正文。
适合谁读
适合
- 初入数据科学领域、希望做出完整可演示项目的学习者
- 有后端或前端开发经验、希望转向数据工程的工程师
- 需要搭建数据分析平台、理解各组件的技术负责人
- 数据分析师:想把分析结果落成面向用户的应用
不适合
- 希望系统深入 Spark 内核、调优与源码的读者
- 只想学习机器学习算法推导与统计理论的读者
- 完全零编程基础、需要从语言入门学起的读者
阅读建议
- 先按附录A在本地或云主机上把环境跑通,再进入正文,避免边读边卡在安装上
- 第Ⅰ部分只求“过一遍”,不必纠缠细节;把注意力放在第Ⅱ部分的迭代流程上
- 可以自己准备一份规模更小的数据集替换航班数据,完整走一遍收集到部署的闭环
- 书中工具版本较旧,遇到依赖冲突时优先查阅各项目当前官方文档而非照搬书中的版本号
出版社简介
电子工业出版社
中国 · 成立于 1982 年
电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。
目录
- 前言
- 第Ⅰ部分 准备工作
- 第1章 理论
- 导论
- 定义
- 方法学
- 敏捷数据科学宣言
- 瀑布模型的问题
- 研究与应用开发
- 敏捷软件开发的问题
- 最终质量:偿还技术债
- 数据科学过程
- 设置预期
- 数据科学团队的角色
- 认清机遇与挑战
- 适应变化
- 过程中的注意事项
- 代码审核与结对编程
- 敏捷开发的环境:提高生产效率
- 用大幅打印实现想法
- 第2章 敏捷工具
- 可伸缩性=易用性
- 敏捷数据科学之数据处理
- 搭建本地环境
- 配置要求
- 配置Vagrant
- 下载数据
- 搭建EC2环境
- 下载并运行代码
- Jupyter笔记本
- 工具集概览
- 敏捷开发工具栈的要求
- Python 3
- 使用JSON行和Parquet序列化事件
- 收集数据
- 使用Spark进行数据处理
- 使用MongoDB发布数据
- 使用Elasticsearch搜索数据
- 使用Apache Kafka分发流数据
- 使用PySpark Streaming处理流数据
常见问题
这本书和常见的 Spark 技术书有什么区别?
它不以讲透 Spark 内部机制为目标,而是以 Spark 为处理核心,串起采集、存储、搜索、前端展示与预测部署的全链路,重点在于用敏捷方式把一个分析应用真正做出来,更接近工程实践手册。
没有 Spark 基础能读吗?
可以。书中第Ⅰ部分会介绍工具集与基本用法,但默认读者具备 Python 编程能力并熟悉类 UNIX 命令行环境。完全没有编程基础的话,建议先补 Python 与 Linux 基础。
书中的代码和工具版本还能直接跑吗?
原版成书较早,涉及的 Spark、Elasticsearch、Kafka、MongoDB 版本与当前差距较大,直接照搬可能出现依赖问题。建议以理解架构和方法论为主,具体版本以各项目官方文档为准。
书里用的是 Python 还是 Scala?
全书主体使用 Python 3 与 PySpark,包括用 PySpark Streaming 处理流数据,前端部分则以 Web 应用和图表展示为主。对不熟悉 Scala 的读者比较友好。
读完能做出什么?
按第Ⅱ部分跟下来,会得到一个以航班数据为例、包含记录展示、交互图表、报表探索与准点预测的分析应用,并能走完部署与迭代改进的流程,可作为自己的项目作品。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。