为你推荐
内容简介
译者序
前言
致谢
关于本书
关于作者
关于封面插图
第1部分
1 入门介绍
1.1 你将从本书中学到什么
1.2 为什么是大型数据集
1.3 什么是并行计算
1.3.1 理解并行计算
1.3.2 拥有map和reduce编程风格的可扩展计算
1.3.3 何时应该使用map和reduce编程风格
1.4 map和reduce编程风格
1.4.1 用来转换数据的map函数
1.4.2 用于高级转换的reduce函数
1.4.3 用于数据转译管道的map和reduce函数
1.5 可提升速度和可扩展性的分布式计算
1.6 Hadoop:一个map和reduce的分布式框架
1.7 提供高性能map、reduce和其他功能的Spark
1.8 AWS Elastic MapReduce——云上的大型数据集
总结
2 加速大型数据集处理任务:map函数和并行计算
2.1 map函数简介
2.1.1 通过map函数来获取URL
2.1.2 惰性函数(比如map)对大型数据集的强大功能
2.2 并行处理
2.2.1 处理器和处理过程
2.2.2 并行化和序列化
2.2.3 顺序和并行化
2.2.4 状态和并行化
2.3 把它们拼在一起:抓取维基百科(Wikipedia)网站
2.3.1 可视化我们的图
2.3.2 回到map函数
2.4 练习
2.4.1 并行化的问题
2.4.2 map函数
2.4.3 并行化和速度
2.4.4 存储序列化
2.4.5 Web抓取数据
2.4.6 异构的map转换
总结
3 用来映射复杂转换的函数管道
3.1 辅助函数和函数链
3.2 揭露黑客的通信手段
3.2.1 创建辅助函数
3.2.2 创建一个管道
3.3 Twitter人口预测
3.3.1 推文级别的管道
3.3.2 用户级别的管道
3.3.3 应用管道
3.4 练习
3.4.1 辅助函数和函数管道
3.4.2 数学老师的“把戏”
3.4.3 恺撒密码
总结
4 用惰性工作流来处理大型数据集
4.1 什么是惰性计算
4.2 一些你需要知道的惰性函数
4.2.1 用filter函数过滤序列
4.2.2 用zip函数合并序列
4.2.3 用iglob函数进行惰性文件搜索
4.3 理解迭代器:Python惰性能力背后的魔法
4.3.1 惰性Python的支柱:迭代器
4.3.2 生成器:用来创建数据的函数
4.4 诗歌谜题:如何惰性处理大型数据集
4.4.1 生成这个示例的数据
4.4.2 用iglob函数来读取诗的内容
4.4.3 清理诗的正则表达式类
4.4.4 计算诗歌内容的比率
4.5 惰性模拟:模拟渔村场景
4.5.1 创建一个村庄类
4.5.2 为我们的渔村场景设计一个模拟类
4.6 练习
4.6.1 惰性函数
4.6.2 fizz buzz问题生成器
4.6.3 重复访问
4.6.4 并行模拟
4.6.5 拼字游戏单词
总结
5 使用reduce进行累加操作
5.1 使用reduce函数进行N-X的转换
5.2 reduce函数的三个部分
5.2.1 reduce中的累加函数
5.2.2 使用lambda函数的简化累加
5.2.3 reduce函数中用于启动复杂行为的初始值
5.3 你熟悉的归约函数
5.3.1 使用reduce函数来模拟filter函数
5.3.2 使用reduce函数来模拟frequencies函数
5.4 同时使用map函数和reduce函数
5.5 使用reduce来分析汽车销售趋势
5.5.1 使用map函数来清洗汽车数据
5.5.2 使用reduce来计算汽车销售的总利润和总数量
5.5.3 对汽车数据应用map和reduce模式
5.6 加速map和reduce
5.7 练习
5.7.1 需要使用reduce的情况
5.7.2 lambda函数
5.7.3 最大的数字
5.7.4 按长度分组单词
总结
6 使用高级并行化来加速map和reduce
6.1 充分利用并行map
6.1.1 分块大小以及如何最大化地利用并行map
6.1.2 带有可变序列和分块大小的并行map运行时
6.1.3 更多的并行map:imap和starmap函数
6.2 解决并行map和reduce的悖论
6.2.1 用来更快进行归约的并行reduce
6.2.2 组合函数以及并行reduce工作流
6.2.3 使用fold实现并行求和、filter和frequencies
总结
第2部分
7 使用Hadoop和Spark处理真正的大型数据集
7.1 分布式计算
7.2 用于批处理的Hadoop
7.3 使用Hadoop找到高分单词
7.3.1 使用Python和Hadoop Streaming实现MapReduce作业
7.3.2 使用Hadoop Streaming对单词进行评分
7.4 用于交互式工作流的Spark
7.4.1 用Spark在内存中处理大型数据集
7.4.2 结合Python和Spark的PySpark
7.4.3 使用Spark SQL进行企业数据分析
7.4.4 用Spark DataFrame来处理列式数据
7.5 用Spark来记录单词得分
7.5.1 搭建Spark环境
7.5.2 通过spark-submit来运行MapReduce Spark作业
7.6 练习
7.6.1 Hadoop Streaming脚本
7.6.2 Spark接口
7.6.3 RDD
7.6.4 在多个步骤之间传递数据
总结
8 使用Apache Streaming和mrjob处理大数据的最佳实践
8.1 非结构化数据:日志和文档
8.2 使用Hadoop对网球球员进行分析
8.2.1 用来读取比赛数据的mapper函数
8.2.2 计算网球选手等级的reducer函数
8.3 通过mrjob工具,以Python的方式来使用HadoopStreaming
8.3.1 一个mrjob作业的Python结构
8.3.2 使用mrjob统计错误数量
8.4 使用mrjob来分析网球比赛
8.4.1 按场地类型统计塞雷娜的战绩
8.4.2 统计威廉姆斯姐妹之间的长期竞争
8.5 练习
8.5.1 Hadoop的数据格式
8.5.2 更多的Hadoop数据格式
8.5.3 Hadoop的原生编程语言
8.5.4 在MRJob中设计通用的模式
总结
9 在PySpark中使用map和reduce来实现PageRank算法
9.1 近距离了解PySpark
9.1.1 PySpark中类似于map函数的方法
9.1.2 PySpark中类似于reduce函数的方法
9.1.3 PySpark中的简便方法
9.2 在PySpark中使用Elo和PageRank算法对网球选手进行评分
9.2.1 使用PySpark重新实现Elo评分
9.2.2 介绍PageRank算法
9.2.3 用PageRank来计算网球选手的评分
9.3 练习
9.3.1 sumByKey
9.3.2 用toolz库来实现sumByKey
9.3.3 Spark和toolz库
9.3.4 维基百科的PageRank算法
总结
10 使用机器学习和PySpark进行更快的决策
10.1 什么是机器学习
10.1.1 机器学习是一种可以自我调节的判断型算法
10.1.2 机器学习的常见应用程序
10.2 机器学习基础与决策树分类器
10.2.1 设计决策树分类器
10.2.2 在PySpark中实现一个决策树
10.3 PySpark中的快速随机森林分类
10.3.1 理解随机森林分类器
10.3.2 实现一个随机森林分类器
总结
第3部分
11 使用Amazon Web Services和S3在云计算环境中处理大型数据集
11.1 AWS Simple Storage Service——针对大型数据集的解决方案
11.1.1 用S3实现无限的存储
11.1.2 云存储的可扩展性
11.1.3 方便的存储异构对象
11.1.4 用于管理大型数据集的管理服务
11.1.5 管理大型数据集的生命周期策略
11.2 使用S3在云中存储数据
11.2.1 通过浏览器来存储S3数据
11.2.2 使用Python和boto通过编程方式访问S3
11.3 练习
11.3.1 S3存储类型
11.3.2 S3存储区域
11.3.3 对象存储
总结
12 使用Amazon的Elastic MapReduce在云上实现MapReduce
12.1 在EMR上通过mrjob来运行Hadoop
12.1.1 用EMR方便地创建云计算集群
12.1.2 使用mrjob启动EMR集群
12.1.3 AWS的EMR浏览器界面
12.2 在EMR上使用Spark来进行机器学习
12.2.1 编写机器学习模型
12.2.2 为Spark搭建一个EMR集群
12.2.3 在集群中运行PySpark作业
12.3 练习
12.3.1 R系列集群
12.3.2 相关联的Hadoop工作
12.3.3 实例类型
总结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜