书籍详情

PySpark原理深入与编程实战(微课视频版)

PySpark原理深入与编程实战(微课视频版)

作者:辛立伟、辛雨桐

出版社:清华大学出版社

出版时间:2023-08-01

ISBN:9787302625971

定价:¥119.00

购买这本书可以去
内容简介
  本书系统讲述Apache Spark/PySpark大数据计算平台的原理,以及如果将Apache PySpark应用于大数据的实时流处理、批处理等各个场景。通过原理深入学习和实践示例、案例的学习应用,使读者了解并掌握Apache Spark/PySpark的基本原理和技能,接近理论与实践的距离。 全书共分为8章,主要内容包括:Spark架构原理与集群搭建、开发和部署PySpark应用程序、PySpark核心编程、PySpark SQL、PySpark SQL高级分析、PySpark结构化流、PySpark结构化流高级处理、Spark大数据处理综合案例。本书源码全部在Apache Spark 3.1.2上调试成功,所有示例和案例均基于Python 3.x语言。 为降低读者学习大数据技术的门槛,本书除了提供了丰富的上机实践操作和范例程序详解之外,本书作者还为购买和使用本书的读者提供了搭建好的Hadoop、Hive数仓和PySpark大数据开发和学习环境。读者既可以参照本书的讲解自行搭建Hadoop和PySpark环境,也可直接使用作者提供的开始和学习环境,快速开始大数据和PySpark的学习。 本书系统讲解了Apache Spark/PySpark大数据计算平台的原理和流、批处理的开发实践,内容全面、实例丰富、可操作性强,做到了理论与实践相结合。本书适合大数据学习爱好者、想要入门Apache Spark/PySpark的读者作为入门和提高的技术参考书,也适合用作大中专院校大数据专业相关的学生和老师的教材或教学参考书。
作者简介
  辛立伟,一个在IT领域摸爬滚打二十多年的老程序员、技术培训师、技术作者。横跨Java、数据库、大数据开发与分析、人工智能等多个领域,参与多个IT项目的架构设计与开发。长期坚持撰写技术博客,曾在多个大学讲授Java开发、数据库和大数据技术课程,曾担任中国石油大学(青岛校区)等多所院校的外聘讲师。
目录
第 1章 Spark架构原理与集群搭建( 
78min) ·· 1 
1.1 Spark简介·1 
1.2 Spark技术栈·3 
1.2.1  Spark Core··4 
1.2.2  Spark SQL··4 
1.2.3 Spark Streaming和 Structured Streaming···5 
1.2.4  Spark MLlib ···5 
1.2.5  Spark GraphX·6 
1.2.6  SparkR ···6 
1.3 Spark和 PySpark架构原理 ···7 
1.3.1 Spark集群和资源管理系统 ··7 
1.3.2 Spark应用程序 ··7 
1.3.3 Spark Driver和 Executor ···9 
1.3.4 PySpark架构···10 
1.4 Spark程序部署模式11 
1.5 安装和配置 Spark集群···12 
1.5.1 安装 Spark ···12 
1.5.2 了解 Spark目录结构···13 
1.5.3 配置 Spark/PySpark集群·14 
1.5.4 验证 PySpark安装···15 
1.6 配置 Spark历史服务器···17 
1.6.1 历史服务器配置 ··17 
1.6.2 启动 Spark历史服务器···19 
1.7 使用 PySpark Shell进行交互式分析 ··20 
1.7.1 运行模式 --master·20 
1.7.2 启动和退出 PySpark Shell···21 
1.7.3 PySpark Shell常用命令···23 
1.7.4 SparkContext和 SparkSession ·23 
1.7.5  Spark Web UI ···25 
1.8 使用 spark-submit提交 PySpark应用程序·28 
1.8.1 spark-submit指令的各种参数说明·28
1.8.2 提交 pi.ipynb程序,计算圆周率 π值31 
1.8.3 将 PySpark程序提交到 YARN集群上执行 ···32第 2章开发和部署 PySpark应用程序( 
80min)··· 34 
2.1 使用 PyCharm开发 PySpark应用程序···34 
2.1.1 准备数据文件 ··34 
2.1.2 安装 PyCharm··35 
2.1.3 创建一个新的 PyCharm项目··35 
2.1.4 安装 PySpark包 ··36 
2.1.5 创建 PySpark应用程序···39 
2.1.6 部署到集群中运行 ··40 
2.2 使用 Zeppelin进行交互式分析 ···41 
2.2.1 下载 Zeppelin安装包··42 
2.2.2 安装和配置 Zeppelin ···42 
2.2.3 配置 Spark/PySpark解释器 ·44 
2.2.4 创建和执行 Notebook文件·45 
2.3 使用 Jupyter Notebook进行交互式分析 ·46 
2.3.1 配置 PySpark Driver使用 Jupyter Notebook···47 
2.3.2 使用 findSpark包49第 3章 PySpark核心编程( 
212min) · 51 
3.1 理解数据抽象 RDD·51 
3.2 RDD编程模型 53 
3.2.1 单词计数应用程序 ··53 
3.2.2 理解 SparkSession56 
3.2.3 理解 SparkContext ···57 
3.3 创建 RDD 58 
3.3.1 将现有的集合并行化以创建 RDD··58 
3.3.2 从存储系统读取数据集以创建 RDD··60 
3.3.3 从已有的 RDD转换得到新的 RDD ···60 
3.3.4 创建 RDD时指定分区数量 60 
3.4 操作 RDD 61 
3.4.1 RDD上的 Transformation和 Action ···62 
3.4.2 RDD Transformation操作64 
3.4.3 RDD Action操作·70 
3.4.4 RDD上的描述性统计操作·73 
3.5  Key-Value Pair RDD 74 
3.5.1 创建 Pair RDD ·75 
3.5.2 操作 Pair RDD ·76 
3.5.3 关于 reduceByKey()操作81 
3.5.4 关于 aggregateByKey() 操作···83 
3.5.5 关于 combineByKey()操作·87 3.6 持久化 RDD 90 
3.6.1 缓存 RDD 90 
3.6.2 RDD缓存策略 92 
3.6.3 检查点 RDD 93 
3.7 数据分区 ·94 
3.7.1 获取和指定 RDD分区数 95 
3.7.2 调整 RDD分区数96 
3.7.3 内置数据分区器 ··97 
3.7.4 自定义数据分区器 101 
3.7.5 避免不必要的 shuffling ·102 
3.7.6 基于数据分区的操作 104 
3.8 使用共享变量 108 
3.8.1 广播变量 109 
3.8.2 累加器 ··· 114 
3.9 PySpark RDD可视化 116 
3.10 PySpark RDD编程案例 ·· 117 
3.10.1 合并小文件 · 117 
3.10.2 二次排序实现 · 119 
3.10.3 Top N实现··121 
3.10.4 数据聚合计算 ·125 第 4章 PySpark SQL(初级) ( 
163min)·127 
4.1 PySpark SQL数据抽象·127 
4.2 PySpark SQL编程模型·129 
4.3 程序入口 SparkSession··132 
4.4 PySpark SQL中的模式和对象··134 
4.4.1 模式···134 
4.4.2 列对象和行对象 135 
4.5 简单构造 DataFrame ·136 
4.5.1 简单创建单列和多列 DataFrame ··137 
4.5.2 从 RDD创建 DataFrame ···140 
4.5.3 读取外部数据源创建 DataFrame ··144 
4.6 操作 DataFrame ·166 
4.6.1 列的多种引用方式 167 
4.6.2 对 DataFrame执行 Transformation转换操作···170 
4.6.3 对 DataFrame执行 Action操作184 
4.6.4 对 DataFrame执行描述性统计操作 ·185 
4.6.5 提取 DataFrame Row中特定字段·188 
4.6.6 操作 DataFrame示例·189 
4.7 存储 DataFrame ·191 
4.7.1 写出 DataFrame ·191 4.7.2 存储模式 194 
4.7.3 控制 DataFrame的输出文件数量·195 
4.7.4 控制 DataFrame实现分区存储·199 
4.8 临时视图与 SQL查询···201 
4.8.1 在 PySpark程序中执行 SQL语句201 
4.8.2 注册临时视图并执行 SQL查询 ···203 
4.8.3 使用全局临时视图 206 
4.8.4 直接使用数据源注册临时视图 ·208 
4.8.5 查看和管理表目录 209 
4.9 缓存 DataFrame · 211 
4.9.1 缓存方法  211 
4.9.2 缓存策略 213 
4.9.3 缓存表 ···214 
4.10 PySpark SQL可视化···214 
4.10.1 PySpark DataFrame转换到 Pandas·214 
4.10.2 PySpark SQL DataFrame可视化 218 
4.11  PySpark SQL编程案例 ···220 
4.11.1  实现单词计数 ·220 
4.11.2  用户数据集分析 ·222 
4.11.3  航空公司航班数据集分析 ··224 第 5章 PySpark SQL(高级) ( 
115min)·234 
5.1 PySpark SQL函数·234 
5.2 内置标量函数 234 
5.2.1 日期时间函数 235 
5.2.2 字符串函数 239 
5.2.3 数学计算函数 243 
5.2.4 集合元素处理函数 244 
5.2.5 其他函数 248 
5.2.6 函数应用示例 252 
5.2.7 PySpark 3数组函数···255 
5.3 聚合与透视函数 264 
5.3.1 聚合函数 264 
5.3.2 分组聚合 271 
5.3.3 数据透视 274 
5.4 高级分析函数 277 
5.4.1 使用多维聚合函数 277 
5.4.2 使用时间窗口聚合 281 
5.4.3 使用窗口分析函数 286 
5.5 用户自定义函数( UDF)·296 
5.5.1 内部原理 296 5.5.2 创建和使用 UDF ···297 
5.5.3 特殊处理 303 
5.6 数据集的 join连接305 
5.6.1 join表达式和 join类型·306 
5.6.2 执行 join连接307 
5.6.3 处理重复列名 314 
5.6.4 join连接策略·317 
5.7 读写 Hive表··319 
5.7.1 PySpark SQL的 Hive配置320 
5.7.2 PySpark SQL读写 Hive表322 
5.7.3 分桶、分区和排序 332 
5.8 PySpark SQL编程案例·334 
5.8.1 电商订单数据分析 334 
5.8.2 电影评分数据集分析 344 第 6章 PySpark结构化流(初级) ( 
195min)·349 
6.1 PySpark DStream流简介···349 
6.2 PySpark结构化流简介··354 
6.3 PySpark结构化流编程模型··356 
6.4 PySpark结构化流核心概念··360 
6.4.1 数据源 ···360 
6.4.2 输出模式 361 
6.4.3 触发器类型 362 
6.4.4 数据接收器 362 
6.4.5 水印···363 
6.5 使用各种流数据源 363 
6.5.1 使用 Socket数据源···364 
6.5.2 使用 Rate数据源···365 
6.5.3 使用 File数据源368 
6.5.4 使用 Kafka数据源 372 
6.6 流 DataFrame操作379 
6.6.1 选择、投影和聚合操作 379 
6.6.2 执行 join连接操作385 
6.7 使用数据接收器 388 
6.7.1 使用 File Data Sink 389 
6.7.2 使用 Kafka Data Sink·391 
6.7.3 使用 Foreach Data Sink··394 
6.7.4 使用 Console Data Sink ·399 
6.7.5 使用 Memory Data Sink·401 
6.7.6 Data Sink与输出模式 ···402 
6.8 深入研究输出模式 402 
6.8.1 无状态流查询 403 6.8.2 有状态流查询 404 
6.9 深入研究触发器 409 
6.9.1 固定间隔触发器 410 
6.9.2 一次性的触发器 412 
6.9.3 连续性的触发器 413 第 7章 PySpark结构化流(高级) ( 
62min)···416 
7.1 事件时间和窗口聚合 416 
7.1.1 固定窗口聚合 416 
7.1.2 滑动窗口聚合 421 
7.2 水印···426 
7.2.1 限制维护的聚合状态数量 ·426 
7.2.2 处理迟到的数据 429 
7.3 处理重复数据 436 
7.4 容错···439 
7.5 流查询度量指标 441 
7.6 结构化流案例:运输公司车辆超速实时监测 ··443 
7.6.1 实现技术剖析 443 
7.6.2 完整实现代码 449 
7.6.3 执行步骤演示 451 第 8章 PySpark大数据分析综合案例 ( 
21min)··455 
8.1 项目需求说明 455 
8.2 项目架构设计 456 
8.3 项目实现:数据采集 457 
8.3.1 爬虫程序实现:使用 requests库··457 
8.3.2 爬虫程序实现:使用 Scrapy框架460 
8.4 项目实现:数据集成 466 
8.4.1 Flume简介 466 
8.4.2 安装和配置 Flume·467 
8.4.3 实现数据集成 468 
8.5 项目实现:数据 ELT 469 
8.6 项目实现:数据清洗与整理 ·472 
8.7 项目实现:数据分析 476 
8.8 项目实现:分析结果导出 ·479 
8.9 项目实现:数据可视化 480 
8.9.1 Flask框架简介··480 
8.9.2 ECharts图表库介绍 ··481 
8.9.3 Flask Web程序开发 ··483 
8.9.4 前端 ECharts组件开发··485 
 
 
 
猜您喜欢

读书导航