PySpark:数据处理的新疆域,轻松开启洞察之旅

在当今这个数据驱动的时代,数据分析已经渗透到了各行各业,成为了驱动业务决策的关键力量。然而,随着数据量的爆炸式增长,传统的数据处理工具已经难以满足现代数据分析师和数据科学家的需求。此时,Spark数据处理引擎如同一座强大的分析工厂,凭借其强大的分布式计算能力和高效的内存管理,成为了大数据处理领域的翘楚。

对于熟悉Python的开发者来说,PySpark无疑是一个不可多得的宝藏。它基于Python的API封装了Spark的核心引擎,不仅简化了Spark原本陡峭的学习曲线,还让这个强大的工具更加亲民,使得任何在Python数据生态系统中工作的人都能轻松上手。

那么,PySpark究竟有何魅力,能够让它在数据分析领域独领风骚呢?

一、组织PySpark代码:简洁高效,逻辑清晰

PySpark的API设计非常人性化,它允许开发者使用Python的语法和习惯来组织代码。通过DataFrame和Dataset API,可以轻松实现数据的转换、过滤、聚合等操作,代码结构清晰,易于维护。

二、管理任何规模的数据:从GB到PB,游刃有余

无论是小型数据集还是超大规模数据集,PySpark都能轻松应对。通过分布式计算,它可以将数据分割成小块,并在多个节点上并行处理,大大提高了数据处理速度。同时,PySpark还提供了丰富的数据加载和存储选项,支持从Hadoop集群、云数据存储以及本地数据文件中获取数据,为数据分析提供了极大的灵活性。

三、扩展数据项目:信心满满,从容应对挑战

随着业务的发展,数据规模的不断增长是不可避免的。而PySpark的分布式计算模型使得它能够轻松应对这种挑战。通过增加计算节点,可以线性提升数据处理能力,确保项目始终保持高效运行。

四、解决常见的数据管道问题:一揽子解决方案

在数据分析过程中,数据清洗、转换和整合是不可或缺的环节。PySpark提供了丰富的数据转换函数和ETL工具,帮助开发者快速解决这些常见问题。同时,它还支持与其他数据处理工具的集成,如pandas等,使得数据分析流程更加顺畅。

五、创建可靠的长时间运行的任务:稳定运行,值得信赖

对于需要长时间运行的任务,PySpark同样表现出色。它提供了丰富的资源管理和调度选项,确保任务在集群中稳定运行,即使遇到异常情况也能快速恢复。这使得PySpark成为了创建可靠数据分析管道的理想选择。

PySpark作为Spark数据处理引擎的Python封装,凭借其强大的功能和灵活的扩展性,已经成为了数据分析领域的明星工具。无论是新手还是资深开发者,都能通过它轻松开启洞察之旅,探索数据的无尽价值。在这个数据驱动的时代,掌握PySpark无疑是为自己的职业生涯增添了一份强大的竞争力。

书籍信息

书名: Python和PySpark数据分析
作者: [加] 乔纳森·里乌 (Jonathan Rioux)
出版社: 清华大学出版社
译者: 殷海英
出版年: 2023-9
页数: 420
定价: 108
装帧: 平装
ISBN: 9787302645368

Python和PySpark数据分析

内容简介

Spark数据处理引擎是一个惊人的分析工厂:输入原始数据,输出洞察。PySpark用基于Python的API封装了Spark的核心引擎。它有助于简化Spark陡峭的学习曲线,并使这个强大的工具可供任何在Python数据生态系统中工作的人使用。
《Python和PySpark数据分析》帮助你使用PySpark解决数据科学的日常挑战。你将学习如何跨多台机器扩展处理能力,同时从任何来源(无论是Hadoop集群、云数据存储还是本地数据文件)获取数据。一旦掌握了基础知识,就可以通过构建机器学习管道,并配合Python、pandas和PySpark代码,探索PySpark的全面多功能特性。
主要内容
● 组织PySpark代码
● 管理任何规模的数据
● 充满信心地扩展你的数据项目
● 解决常见的数据管道问题
● 创建可靠的长时间运行的任务

书籍目录

第1章介绍 1
1.1什么是PySpark 1
1.1.1从头开始:什么是Spark 2
1.1.2PySpark=Spark+Python 3
1.1.3为什么选择PySpark 3
1.2PySpark的工作原理 5
1.2.1使用集群管理器进行物理规划 6
1.2.2懒惰的主管成就工厂的高效 8
1.3你将从本书学到什么 11
1.4我们将如何开始 12
1.5本章小结 13
第Ⅰ部分介绍:PySpark的第一步
第2章使用PySpark编写的第一个数据处理程序 17
2.1设置pysparkshell 18
2.1.1SparkSession入口点 20
2.1.2配置PySpark的日志级别 21
2.2映射程序 22
2.3采集和探索:为数据转换奠定基础 23
2.3.1用spark.read将数据读入数据帧 24
2.3.2从结构到内容:使用show()探索数据帧 27
2.4简单的列转换:将句子拆解为单词列表 29
2.4.1使用select()选择特定的列 30
2.4.2转换列:将字符串拆分为单词列表 31
2.4.3重命名列:alias和withColumnRenamed 33
2.4.4重塑数据:将list分解成行 34
2.4.5处理单词:更改大小写并删除标点符号 36
2.5筛选记录 38
2.6本章小结 40
2.7扩展练习 40
第3章提交并扩展你的第一个PySpark程序 43
3.1对记录进行分组:计算词频 43
3.2使用orderBy对结果排序 46
3.3保存数据帧中的数据 48
3.4整合所有内容:计数 49
3.4.1使用PySpark的导入约定简化依赖 50
3.4.2通过方法链简化程序 51
3.5使用spark-submit以批处理模式启动程序 53
3.6本章未涉及的内容 54
3.7扩展词频程序 55
3.8本章小结 56
3.9扩展练习 57
第4章使用pyspark.sql分析表格数据 59
4.1什么是表格数据 60
4.2使用PySpark分析和处理表格数据 62
4.3在PySpark中读取和评估带分隔符的数据 63
4.3.1第一次使用专门处理CSV文件的SparkReader 63
4.3.2自定义SparkReader对象来读取CSV数据文件 65
4.3.3探索数据世界的轮廓 67
4.4数据操作基础:选择、删除、
重命名、排序及诊断 68
4.4.1了解我们想要什么:选择列 69
4.4.2只保留我们想要的:删除列 71
4.4.3创建新列:使用withColumn()创建新列 73
4.4.4整理数据帧:对列进行重命名和重排序 76
4.4.5用describe()和summary()分析数据帧 78
4.5本章小结 80
4.6扩展练习 80
第5章数据帧操作:连接和分组 83
5.1连接数据 83
5.1.1探索连接的世界 84
5.1.2了解连接的两边 85
5.1.3成功连接的规则:谓词 85
5.1.4连接方法 87
5.1.5连接的命名约定 91
5.2通过groupby和GroupedData汇总数据 94
5.2.1一个简单的分组蓝图 95
5.2.2对自定义列使用agg() 98
5.3处理null值:删除或填充 100
5.3.1立即删除:使用dropna()
删除具有null值的记录 100
5.3.2使用fillna()替换null值 101
5.4问题回顾:端到端程序 102
5.5本章小结 105
5.6扩展练习 105
第Ⅱ部分进级:将你的想法转化为代码
第6章多维数据帧:使用PySpark处理JSON数据 109
6.1读取JSON数据:为schemapocalypse做好准备 109
6.1.1从小处开始:将JSON数据作为受限的Python字典 111
6.1.2更进一步:在PySpark中读取JSON数据 113
6.2用复杂的数据类型突破二维数据 114
6.2.1当有多个值时:使用数组 116
6.2.2映射类型:同一列中的键和值 119
6.3结构体:列中的嵌套列 121
6.4构建和使用数据帧模式 125
6.4.1使用Spark类型作为schema的基本代码块 125
6.4.2使用结构体模式原地读取JSON文档 127
6.4.3循环往复:以JSON格式指定模式 131
6.5进行整合:使用复杂数据类型减少重复数据 133
6.5.1获取“刚刚好”的数据帧:explode和collect 135
6.5.2创建自己的层次结构:作为函数的结构体 138
6.6本章小结 139
6.7扩展练习 139
第7章双语PySpark:混合Python和SQL 141
7.1根据我们的了解:pyspark.sql与普通SQL 142
7.2为SQL准备数据帧 143
7.2.1将数据帧转换为Spark表 144
7.2.2使用Spark目录 145
7.3SQL和PySpark 146
7.4在数据帧方法中使用类似SQL的语法 148
7.4.1获取所需的行和列:select和where 148
7.4.2将相似的记录分组在一起:groupby和orderby 149
7.4.3在分组后使用having进行筛选 150
7.4.4使用CREATE关键字创建新表/视图 151
7.4.5使用UNION和JOIN向表中添加数据 153
7.4.6通过子查询和公共表表达式更好地组织SQL代码 154
7.4.7PySpark与SQL语法的快速总结 157
7.5简化代码:混合SQL和Python 157
7.5.1使用Python提高弹性并简化数据读取阶段 158
7.5.2在PySpark中使用SQL风格的表达式 159
7.6结论 161
7.7本章小结 161
7.8扩展练习 162
第8章使用Python扩展PySpark:RDD和UDF 165
8.1PySpark中的RDD 166
8.2使用Python通过UDF扩展PySpark 173
8.2.1这一切都从简单的Python开始:使用类型化的Python函数 174
8.2.2使用udf()将Python函数转换为UDF 176
8.3本章小结 179
8.4扩展练习 179
第9章大数据就是大量的小数据:使用pandasUDF 181
9.1通过pandas进行列转换:使用SeriesUDF 182
9.1.1将Spark连接到谷歌的BigQuery 183
9.1.2SeriestoSeriesUDF:使用pandas的列函数 188
9.1.3标量UDF+冷启动=SeriesUDF的迭代器 190
9.2分组数据上的UDF:聚合
与应用 193
9.2.1分组聚合UDF 194
9.2.2分组映射UDF 196
9.3何时用,怎么用 198
9.4本章小结 200
9.5扩展练习 200
第10章不同视角下的数据:窗口函数 203
10.1学习并使用简单的窗口函数 204
10.1.1确定每年最冷的一天 204
10.1.2创建并使用一个简单的窗口函数来获取最冷的日子 206
10.1.3比较两种方法 210
10.2除了汇总:使用排名和分析功能 211
10.2.1排名函数:看看谁是第一 212
10.2.2分析函数:回顾过去和展望未来 216
10.3弹性窗口!使用行和范围的边界 218
10.3.1计数,窗口样式:静态、增长和无边界 219
10.3.2范围和行 221
10.4综合实践:在窗口中使用UDF 224
10.5查看窗口:成功的窗口函数的主要步骤 226
10.6本章小结 226
10.7扩展练习 226
第11章加速PySpark:理解Spark的查询计划 229
11.1芝麻开门:通过SparkUI了解Spark环境 229
11.1.1查看配置:Environment选项卡 231
11.1.2Executors选项卡和resourcemanagement选项卡 233
11.1.3了解任务的运行:通过SparkUI判断任务是否完成 237
11.1.4通过Spark查询计划映射操作:SQL选项卡 240
11.1.5Spark的核心:解析、分析、优化和物理计划 242
11.2关于性能:操作和内存 246
11.2.1宽操作与窄操作 246
11.2.2缓存数据帧:功能强大,但往往致命(对于性能而言) 251
11.3本章小结 254
第Ⅲ部分使用PySpark进行机器学习
第12章准备工作:为机器学习准备特征 259
12.1阅读、探索和准备机器学习数据集 260
12.1.1使用toDF()对列名进行标准化 261
12.1.2探索数据并获取第一个特征列 262
12.1.3解决数据错误并构建第一个特征集 264
12.1.4删除无用记录并估算二分类特征 266
12.1.5处理极值:清洗带有连续值的列 268
12.1.6删除不常见的二分类列 271
12.2特征创建和细化 272
12.2.1创建自定义特征 272
12.2.2去除高度相关的特征 273
12.3基于转换器和估计器的特征准备 276
12.3.1使用Imputer估计器填充连续特征 277
12.3.2使用MinMaxScaler估计器对特征进行缩放 279
12.4本章小结 281
第13章通过机器学习管道增强机器学习 283
13.1转换器和估计器:Spark
中机器学习的构建块 284
13.1.1数据进出:转换器 285
13.1.2估计器 289
13.2构建(完整的)机器学习管道 290
13.2.1使用向量列类型组装最终数据集 292
13.2.2使用LogisticRegression分类器训练机器学习模型 295
13.3评估和优化模型 297
13.3.1评估模型准确率:混淆矩阵和评估器对象 298
13.3.2真阳性与假阳性:ROC曲线 300
13.3.3使用交叉验证优化超参数 302
13.4从模型中获取最大的驱动力:提取系数 305
13.5本章小结 307
第14章构建自定义机器学习转换器和估计器 309
14.1创建自己的转换器 309
14.1.1设计转换器:从Param和转换的角度思考 310
14.1.2创建转换器的Param 312
14.1.3getter和setter:成为PySpark中优秀的一员 314
14.1.4创建自定义转换器的初始化函数 316
14.1.5创建转换函数 317
14.1.6使用转换器 319
14.2创建自己的估计器 321
14.2.1设计估计器:从模型到Param 321
14.2.2实现伴生模型:创建自己的Mixin 324
14.2.3创建ExtremeValueCapper估计器 326
14.2.4使用自定义估计器 328
14.3在机器学习管道中使用转换器和估计器 328
14.3.1处理多个输入 329
14.3.2将自定义组件应用于机器学习管道 331
14.4本章小结 334
14.5结论:有数据,我就开心 334
附录A习题答案 337
附录B安装PySpark 369
附录C一些有用的Python内容 389

去京东买

去淘宝买

版权声明:
作者:admin
链接:https://manboo.net/179.html
来源:学习笔记
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
QQ群
< <上一篇
下一篇>>
文章目录
关闭
目 录