搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Python和PySpark数据分析(数据科学与大数据技术)
0.00     定价 ¥ 118.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购25本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787302645368
  • 作      者:
    作者:(加)乔纳森·里乌|责编:王军|译者:殷海英
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2023-10-01
收藏
作者简介

  作为一家数据驱动软件公司的ML总监,Jonathan Rioux每天都在使用PySpark。他向数据科学家、数据工程师和精通数据的业务分析师讲授PySpark的用法。

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

第1章  介绍 1

1.1  什么是PySpark 1

1.1.1  从头开始:什么是Spark 2

1.1.2  PySpark = Spark + Python 3

1.1.3  为什么选择PySpark 3

1.2  PySpark的工作原理 5

1.2.1  使用集群管理器进行物理规划 6

1.2.2  懒惰的主管成就工厂的高效 8

1.3  你将从本书学到什么 11

1.4  我们将如何开始 12

1.5  本章小结 13

第Ⅰ部分  介绍:PySpark的第一步

第2章  使用PySpark编写的第一个数据处理程序 17

2.1  设置pyspark shell 18

2.1.1  SparkSession入口点 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.3  SQL和PySpark 146

7.4  在数据帧方法中使用类似SQL的语法 148

7.4.1  获取所需的行和列:select和where 148

7.4.2  将相似的记录分组在一起:group by和order by 149

7.4.3  在分组后使用having进行筛选 150

7.4.4  使用CREATE关键字创建新表/视图 151

7.4.5  使用UNION和JOIN向表中添加数据 153

7.4.6  通过子查询和公共表表达式更好地组织SQL代码 154

7.4.7  PySpark与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.1  PySpark中的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章  大数据就是大量的小数据:使用pandas UDF 181

9.1  通过pandas进行列转换:使用Series UDF 182

9.1.1  将Spark连接到谷歌的BigQuery 183

9.1.2  Series to Series UDF:使用pandas的列函数 188

9.1.3  标量UDF+冷启动=Series UDF的迭代器 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  芝麻开门:通过Spark UI了解Spark环境 229

11.1.1  查看配置:Environment选项卡 231

11.1.2  Executors选项卡和resource management选项卡 233

11.1.3  了解任务的运行:通过Spark UI判断任务是否完成 237

11.1.4  通过Spark查询计划映射操作:SQL选项卡 240

11.1.5  Spark的核心:解析、分析、优化和物理计划 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

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证