本书是使用Spark进行大规模数据分析的实战宝典,由知名数据科学家撰写。本书在第1版的基础上,针对Spark近年来的发展,对样例代码和所使用的资料进行了大量更新。新版Spark使用了全新的核心API,MLlib和Spark SQL两个子项目也发生了较大变化,本书为关注Spark发展趋势的读者提供了与时俱进的资料,例如Dataset和DataFrame的使用,以及与DataFrame API高度集成的Spark ML API。
作为计算框架,Spark速度快,开发简单,能同时兼顾批处理和实时数据分析,因此很快被广大企业级用户所采纳,并随着近年人工智能的崛起而成为分析和挖掘大数据的重要得力工具。
本书由业内知名数据科学家执笔,通过丰富的示例展示了如何结合Spark、统计方法和真实世界数据集来解决数据分析问题,既涉及模型的构建和评价,也涵盖数据清洗、数据预处理和数据探索,并描述了如何将结果变为生产应用,是运用Apache Spark进行大数据分析和处理的实战宝典。
第2版根据新版Spark杰出实践,对样例代码和所用资料做了大量更新。
本书涵盖模式如下:
● 音乐推荐和Audioscrobbler数据集
● 用决策树算法预测森林植被
● 基于K均值聚类进行网络流量异常检测
● 基于潜在语义算法分析维基百科
● 用GraphX分析伴生网络
● 对纽约出租车轨迹进行空间和时间数据分析
● 通过蒙特卡罗模拟来评估金融风险
● 基因数据分析和BDG项目
● 用PySpark和Thunder分析神经图像数据
参考资料
作者简介
作者:[美]桑迪·里扎(Sandy Ryza), [美]于里·莱瑟森(Uri Laserson), [英]肖恩·欧文(Sean Owen), [美]乔希·威尔斯(Josh Wills) 译者:龚少成 邱鑫
【作者简介】
桑迪·里扎(Sandy Ryza),Spark项目代码提交者、Hadoop项目管理委员会委员,Time Series for Spark项目创始人。曾任Cloudera公司高级数据科学家,现就职于Remix公司从事公共交通算法开发。
于里·莱瑟森(Uri Laserson),MIT博士毕业,致力于用技术解决遗传学问题,曾利用Hadoop生态系统开发了可扩展的基因组学和免疫学技术。目前是西奈山伊坎医学院遗传学助理教授,曾任Cloudera公司核心数据科学家。
肖恩·欧文(Sean Owen),Spark、Mahout项目代码提交者,Spark项目管理委员会委员。现任Cloudera公司数据科学总监。
乔希·威尔斯(Josh Wills),Crunch项目发起人,现任Slack公司数据工程主管。曾任Cloudera公司高级数据科学总监。
目录
推荐序 ix
译者序 xi
序 xiii
前言 xv
第 1章 大数据分析 1
1.1 数据科学面临的挑战 2
1.2 认识Apache Spark 4
1.3 关于本书 5
1.4 第 2版说明 6
第 2章 用Scala 和Spark 进行数据分析 8
2.1 数据科学家的Scala 9
2.2 Spark编程模型 10
2.3 记录关联问题 10
2.4 小试牛刀:Spark shell和SparkContext 11
2.5 把数据从集群上获取到客户端 16
2.6 把代码从客户端发送到集群 19
2.7 从RDD到DataFrame 20
2.8 用DataFrame API来分析数据 23
2.9 DataFrame的统计信息 27
2.10 DataFrame的转置和重塑 29
2.11 DataFrame的连接和特征选择 32
2.12 为生产环境准备模型 33
2.13 评估模型 35
2.14 小结 36
第3章 音乐推荐和Audioscrobbler数据集 37
3.1 数据集 38
3.2 交替最小二乘推荐算法 39
3.3 准备数据 41
3.4 构建第 一个模型 44
3.5 逐个检查推荐结果 47
3.6 评价推荐质量 50
3.7 计算AUC 51
3.8 选择超参数 53
3.9 产生推荐 55
3.10 小结 56
第4章 用决策树算法预测森林植被 58
4.1 回归简介 59
4.2 向量和特征 59
4.3 样本训练 60
4.4 决策树和决策森林 61
4.5 Covtype数据集 63
4.6 准备数据 64
4.7 第 一棵决策树 66
4.8 决策树的超参数 72
4.9 决策树调优 73
4.10 重谈类别型特征 77
4.11 随机决策森林 79
4.12 进行预测 81
4.13 小结 82
第5章 基于K均值聚类的网络流量异常检测 84
5.1 异常检测 85
5.2 K均值聚类 85
5.3 网络入侵 86
5.4 KDD Cup 1999数据集 86
5.5 初步尝试聚类 87
5.6 k的选择 90
5.7 基于SparkR 的可视化 92
5.8 特征的规范化 96
5.9 类别型变量 98
5.10 利用标号的熵信息 99
5.11 聚类实战 100
5.12 小结 102
第6章 基于潜在语义分析算法分析维基百科 104
6.1 文档-词项矩阵 105
6.2 获取数据 106
6.3 分析和准备数据 107
6.4 词形归并 109
6.5 计算TF-IDF 110
6.6 奇异值分解 111
6.7 找出重要的概念 113
6.8 基于低维近似的查询和评分 117
6.9 词项-词项相关度 117
6.10 文档-文档相关度 119
6.11 文档-词项相关度 121
6.12 多词项查询 122
6.13 小结 123
第7章 用GraphX分析伴生网络 124
7.1 对MEDLINE文献引用索引的网络分析 125
7.2 获取数据 126
7.3 用Scala XML工具解析XML文档 128
7.4 分析MeSH主要主题及其伴生关系 130
7.5 用GraphX来建立一个伴生网络 132
7.6 理解网络结构 135
7.6.1 连通组件 136
7.6.2 度的分布 138
7.7 过滤噪声边 140
7.7.1 处理EdgeTriplet 141
7.7.2 分析去掉噪声边的子图 142
7.8 小世界网络 144
7.8.1 系和聚类系数 144
7.8.2 用Pregel计算平均路径长度 145
7.9 小结 150
第8章 纽约出租车轨迹的空间和时间数据分析 151
8.1 数据的获取 152
8.2 基于Spark的第三方库分析 153
8.3 基于Esri Geometry API和Spray的地理空间数据处理 153
8.3.1 认识Esri Geometry API 154
8.3.2 GeoJSON简介 155
8.4 纽约市出租车客运数据的预处理 157
8.4.1 大规模数据中的非法记录处理 159
8.4.2 地理空间分析 162
8.5 基于Spark的会话分析 165
8.6 小结 168
第9章 基于蒙特卡罗模拟的金融风险评估 170
9.1 术语 171
9.2 VaR计算方法 172
9.2.1 方差-协方差法 172
9.2.2 历史模拟法 172
9.2.3 蒙特卡罗模拟法 172
9.3 我们的模型 173
9.4 获取数据 173
9.5 数据预处理 174
9.6 确定市场因素的权重 177
9.7 采样 179
9.8 运行试验 182
9.9 回报分布的可视化 185
9.10 结果的评估 186
9.11 小结 188
第 10章 基因数据分析和BDG项目 190
10.1 分离存储与模型 191
10.2 用ADAM CLI导入基因学数据 193
10.3 从ENCODE数据预测转录因子结合位点 201
10.4 查询1000 Genomes项目中的基因型 207
10.5 小结 210
第 11章 基于PySpark和Thunder的神经图像数据分析 211
11.1 PySpark简介 212
11.2 Thunder工具包概况和安装 215
11.3 用Thunder加载数据 215
11.4 用Thunder对神经元进行分类 221
11.5 小结 225
作者介绍 226
封面介绍 226
在本地构建数据密集型应用程序,并使用Python和Spark 2.0的强大功能进行大规模部署。
Apache Spark是一个高效集群计算的开源框架,具有强大的数据并行和容错接口。本书将向您展示如何利用Python的强大功能并将其用于Spark生态系统。首先,您将深入了解Spark 2.0体系结构以及如何为Spark设置Python环境。
您将熟悉PySpark中可用的模块。您将学习如何使用RDD和DataFrame抽象数据并了解PySpark的流功能。此外,您将全面了解使用ML和MLlib的PySpark的机器学习功能,使用GraphFrames的图形处理以及使用Blaze的多语言持久性。最后,您将学习如何使用spark-submit命令将应用程序部署到云。
在本书的最后,您将对Spark Python API及其如何用于构建数据密集型应用程序有一个深入的了解。
本书采用了非常全面的循序渐进的方法,因此您可以了解Spark生态系统如何与Python一起使用来开发高效,可扩展的解决方案。每一章都是独立的,以非常易于理解的方式编写,重点关注每个概念的方法和原理。
关于本书
- 了解为何以及如何有效地使用Python处理数据并在Apache Spark 2.0中构建机器学习模型
- 开发和部署高效,可扩展的实时Spark解决方案
- 通过本跳转入门指南,将您对Spark的使用理解提升到新的水平
参考资料
你会学到什么
- 了解Apache Spark和Spark 2.0架构
- 使用Spark SQL构建Spark DataFrames并与之交互
- 了解如何分别使用GraphFrames和TensorFrame解决图形和深度学习问题
- 读取,转换和理解数据并使用它来训练机器学习模型
- 使用MLlib和ML构建机器学习模型
- 了解如何使用spark-submit以编程方式提交应用程序
- 将本地构建的应用程序部署到群集
面向读者
pyspark实战指南 - 2017.pdf
如果您是想要了解Apache Spark 2.0生态系统的Python开发人员,那么本书适合您。对Python的深刻理解有望在本书中发挥最大作用。熟悉Spark会很有用,但不是强制性的
快速找到处理大数据时遇到的常见编程问题的解决方案。 内容以流行的问题解决方案格式呈现。 查找要解决的编程问题。 阅读解决方案。 直接在您自己的代码中应用解决方案。 问题解决了!
PySpark Recipes涵盖了Hadoop及其缺点。 介绍了Spark,PySpark和RDD的体系结构。 您将学习如何应用RDD来解决日常的大数据问题。 包含Python和NumPy,使PySpark的新学习者能够轻松理解和采用该模型。
参考资料
你会学到什么
- 了解PySpark2和SparkSQL的高级功能
- 优化您的代码
- 使用Python编写SparkSQL程序
- 在Python中使用Spark Streaming和Spark MLlib
- 使用GraphFrames执行图形分析
面向读者
数据分析师,Python程序员,大数据爱好者
使用PySpark构建机器学习模型,自然语言处理应用程序和推荐系统,以解决各种业务挑战。
本书从Spark的基础知识及其演变开始,然后介绍了传统机器学习算法的整个范围,以及使用PySpark的自然语言处理和推荐系统。使用PySpark进行机器学习向您展示如何构建有监督的机器学习模型,如线性回归,逻辑回归,决策树和随机森林。您还将看到无监督的机器学习模型,例如K-means和层次聚类。
本书的主要部分侧重于特征工程,以便使用PySpark创建有用的功能来训练机器学习模型。自然语言处理部分包括文本处理,文本挖掘和嵌入分类。阅读本书后,您将了解如何使用PySpark的机器学习库来构建和培训各种机器学习模型。此外,您可以熟悉相关的PySpark组件,例如数据提取,数据处理和数据分析,您可以使用它们来开发数据驱动的智能应用程序。您将学习如何构建一系列受监督和无监督的机器学习算法使用Spark MLlib库实现机器学习算法使用Spark MLlib库开发推荐系统处理与特征工程,类平衡,偏差和方差以及交叉验证相关的问题以构建最佳拟合模型。
本书适用于数据科学和机器学习专业人员。
结合Apache Spark和Python的强大功能,构建有效的大数据应用程序
主要特点
- 使用PySpark执行有效的数据处理,机器学习和分析
- 克服使用Python开发和部署Spark解决方案的挑战
- 探索有效结合Python和Apache Spark以处理数据的方法
图书说明
Apache Spark是一个高效集群计算的开源框架,具有强大的数据并行和容错接口。 PySpark Cookbook提供了有效且省时的方法,可充分利用Python的强大功能并将其用于Spark生态系统。
您将首先学习Apache Spark架构以及如何为Spark设置Python环境。然后,您将熟悉PySpark中可用的模块,并毫不费力地开始使用它们。除此之外,您还将了解如何使用RDD和DataFrame抽象数据,并了解PySpark的流功能。然后,您将继续使用ML和MLlib来解决与PySpark的机器学习功能相关的任何问题,并使用GraphFrames来解决图形处理问题。最后,您将探索如何使用spark-submit命令将应用程序部署到云。
在本书的最后,您将能够使用Apache API的Python API来解决与构建数据密集型应用程序相关的任何问题。
参考资料
你会学到什么
- 在虚拟环境中配置PySpark的本地实例
- 在本地和多节点环境中安装和配置Jupyter
- 使用pyspark.sql从JSON和字典创建DataFrames
- 探索ML模块中可用的回归和聚类模型
- 使用DataFrames转换用于建模的数据
- 连接到PubNub并在流上执行聚合
目录
- Spark安装和配置
- 使用RDD提取数据
- 使用DataFrames抽象数据
- 准备建模数据
- 使用MLLib进行机器学习
- 使用ML模块进行机器学习
- 使用PySpark进行结构化流式处理
- GraphFrames - 使用PySpark的图论
参考资料
参考资料