清华大学出版社出版,基于Spark 3.1.2和Python 3.x,面向入门小白的PySpark系统教程和案例图书。
配套资源包含:代码、数据、课件PPT。
- 目录
-
第1章 Spark架构原理与集群搭建
- 11 Spark简介
-
12 Spark技术栈
- 121 Spark Core
- 122 Spark SQL
- 123 Spark Streaming和Structured Streaming
- 124 Spark MLlib
- 125 Spark GraphX
- 126 SparkR
-
13 Spark和PySpark架构原理
- 131 Spark集群和资源管理系统
- 132 Spark应用程序
- 133 Spark Driver和Executor
- 134 PySpark架构
- 14 Spark程序部署模式
-
15 安装和配置Spark集群
- 151 安装Spark
- 152 了解Spark目录结构
- 153 配置Spark/PySpark集群
- 154 验证PySpark安装
-
16 配置Spark历史服务器
- 161 历史服务器配置
- 162 启动Spark历史服务器
-
17 使用pyspark shell进行交互式分析
- 171 运行模式--master
- 172 启动和退出pyspark shell
- 173 pyspark shell常用命令
- 174 SparkContext和SparkSession
- 175 Spark Web UI
-
18 使用spark-submit提交PySpark应用程序
- 181 spark-submit指令的各种参数说明
- 182 提交pi.py程序,计算圆周率π值
- 183 提交PySpark程序到YARN集群上执行
-
第2章 开发和部署PySpark应用程序
-
21使用PyCharm开发PySpark应用程序
- 211 准备数据文件
- 212 安装PyCharm
- 213 创建一个新的PyCharm项目
- 214 安装pyspark包
- 215 创建pyspark应用程序
- 216 部署到集群中运行
-
22使用Zeppelin进行交互式分析
- 221 下载Zeppelin安装包
- 222 安装和配置Zeppelin
- 223 配置Spark/PySpark解释器
- 224 创建和执行notebook文件
-
23使用Jupyter Notebook进行交互式分析
- 231 配置PySpark Driver使用Jupyter Notebook
- 232 使用findSpark包
-
21使用PyCharm开发PySpark应用程序
-
第3章 PySpark核心编程
- 31理解数据抽象RDD
-
32 RDD编程模型
- 321 单词计数应用程序
- 322 理解SparkSession
- 323 理解SparkContext
-
33创建RDD
- 331 将现有的集合并行化以创建RDD
- 332 从存储系统读取数据集以创建RDD
- 333 从已有的RDD转换得到新的RDD
- 334 创建RDD时指定分区数量
-
34操作RDD
- 341 RDD上的Transformation和Action
- 342 RDD Transformation操作
- 343 RDD Action操作
- 344 RDD上的描述性统计操作
-
35 Key-Value Pair RDD
- 351 创建Pair RDD
- 352 操作Pair RDD
- 353 关于reduceByKey()操作
- 354 关于aggregateByKey()操作
- 355 关于combineByKey()操作
-
36持久化RDD
- 351 缓存RDD
- 352 RDD缓存策略
- 353 检查点RDD
-
37数据分区
- 371 获取和指定RDD分区数
- 372 调整RDD分区数
- 373 内置数据分区器
- 374 自定义数据分区器
- 375 避免不必要的shuffling
- 376 基于数据分区的操作
-
38使用共享变量
- 381 广播变量
- 382 累加器
- 39 PySpark RDD可视化
-
310 PySpark RDD编程案例
- 3101 合并小文件
- 3102 二次排序实现
- 3103 Top N实现
- 3104 数据聚合计算
-
第4章 PySpark SQL
- 41 PySpark SQL数据抽象
- 42 PySpark SQL编程模型
- 43 程序入口SparkSession
-
44 PySpark SQL中的模式和对象
- 441 模式-Schema
- 442 列对象和行对象
-
45 构造DataFrame
- 451 简单创建单列和多列DataFrame
- 452 从RDD创建DataFrame
- 453 读取外部数据源创建DataFrame
-
46 操作DataFrame
- 461 列的多种引用方式
- 462 对DataFrame执行Transformation转换操作
- 463 对DataFrame执行Action操作
- 464 对DataFrame执行描述性统计操作
- 465 提取DataFrame Row中特定字段
- 466 操作DataFrame示例
-
47 存储DataFrame
- 471 写出DataFrame
- 472 存储模式
- 473 控制DataFrame的输出文件数量
- 474 控制DataFrame实现分区存储
-
48 临时视图与SQL查询
- 481 在PySpark程序中执行SQL语句
- 482 注册临时视图并执行SQL查询
- 483 使用全局临时视图
- 484 直接使用数据源注册临时视图
- 485 查看和管理表目录
-
49 缓存DataFrame
- 491 缓存方法
- 492 缓存策略
- 493 缓存表
-
410 PySpark SQL可视化
- 4101 PySpark DataFrame转换到Pandas
- 4102 PySpark SQL DataFrame可视化
-
411 PySpark SQL编程案例
- 4111 实现单词计数
- 4112 用户数据集分析
- 4113 航空公司航班数据集分析
-
第5章 PySpark SQL(高级)
- 51 PySpark SQL函数
-
52 内置标量函数
- 521 日期时间函数
- 522 字符串函数
- 523 数学计算函数
- 524 集合元素处理函数
- 525 其他函数
- 526 函数应用示例
- 527 PySpark 3数组函数
-
53 聚合与透视函数
- 531 聚合函数
- 532 分组聚合
- 533 数据透视
-
54 高级分析函数
- 541 使用多维聚合函数
- 542 使用时间窗口聚合
- 543 使用窗口分析函数
-
55 用户自定义函数(UDF)
- 551 内部原理
- 552 创建和使用UDF
- 553 特殊处理
-
56 数据集的join连接
- 561 join表达式和join类型
- 562 执行join连接
- 563 处理重复列名
- 564 join连接策略
-
57 读写Hive表
- 571 PySpark SQL的Hive配置
- 572 PySpark SQL读写Hive表
- 573 分桶、分区和排序
-
58 PySpark SQL编程案例
- 581 电商订单数据分析
- 582 电影评分数据集分析
-
第6章 PySpark结构化流(初级)
- 61 PySpark DStream流简介
- 62 PySpark结构化流简介
- 63 PySpark结构化流编程模型
-
64 PySpark结构化流核心概念
- 641 数据源
- 642 输出模式
- 643 触发器类型
- 644 数据接收器
- 645 水印
-
65使用各种流数据源
- 651 使用Socket数据源
- 652 使用Rate数据源
- 653 使用File数据源
- 654 使用Kafka数据源
-
66流DataFrame操作
- 661 选择、投影和聚合操作
- 662 执行join连接操作
-
67使用数据接收器
- 671 使用File Data Sink
- 672 使用Kafka Data Sink
- 673 使用Foreach Data Sink
- 674 使用Console Data Sink
- 675 使用Memory Data Sink
- 676 Data Sink与输出模式
-
68深入研究输出模式
- 681 无状态流查询
- 682 有状态流查询
-
69深入研究触发器
- 691 固定间隔触发器
- 692 一次性的触发器
- 693 连续性的触发器
-
第7章 PySpark结构化流(高级)
-
71事件时间和窗口聚合
- 711 固定窗口聚合
- 712 滑动窗口聚合
-
72水印
- 721 限制维护的聚合状态数量
- 722 处理迟到的数据
- 73处理重复数据
- 74容错
- 75流查询度量指标
-
76结构化流案例:运输公司车辆超速实时监测
- 761 实现技术剖析
- 762 完整实现代码
- 763 执行步骤演示
-
71事件时间和窗口聚合
-
第8章 PySpark大数据分析综合案例
- 81 项目需求说明
- 82 项目架构设计
-
83 项目实现-数据采集
- 831 爬虫程序实现:使用requests库
- 832 爬虫程序实现:使用Scrapy框架
-
84 项目实现-数据集成
- 841 Flume简介
- 842安装和配置Flume
- 843实现数据集成
- 85 项目实现-数据ELT
- 86 项目实现-数据清洗与整理
- 87 项目实现-数据分析
- 88 项目实现-分析结果导出
-
89 项目实现-数据可视化
- 891 Flask框架简介
- 892 ECharts图表库介绍
- 893 Flask Web程序开发
- 894前端Echarts组件开发
前 言
大数据分析一直是个热门话题,需要大数据分析的场景也越来越多。Apache Spark是一个用于快速、通用、大规模数据处理的开源项目。现在,Apache Spark已经成为一个统一的大数据处理平台,拥有一个快速的统一分析引擎,可用于大数据的批处理、实时流处理、机器学习和图计算。
2009年,Spark诞生于伯克利大学AMP实验室,最初属于伯克利大学的研究性项目。它于2010年被正式开源,于2013年被转交给Apache软件基金会,并于2014年成为Aparch基金的顶级项目,整个过程不到五年时间。Apache Spark诞生以后,迅速发展成为了大数据处理技术中的佼佼者,目前已经成为大数据处理领域炙手可热的技术,其发展势头非常强劲。
自2010年首次发布以来,Apache Spark已经成为最活跃的大数据开源项目之一。如今,Apache Spark实际上已经是大数据处理、数据科学、机器学习和数据分析工作负载的统一引擎,是从业人员以及希望进入大数据行业人员必须要学习和掌握的大数据技术之一。
Apache Spark支持Java、Scala、Python和R语言,并提供了相应的API。而在数据科学领域,Python是应用最普遍的数据处理语言。但是作为大数据的初学者,即使精通Python语言,在学习PySpark时通常也会遇到以下几个难题:
(1) 缺少面向零基础小白的PySpark入门教程。
(2) 缺少系统化的PySpark大数据教程。
(3) 现有的PySpark资料、教程或图书过时陈旧或者碎片化。
(4) 官方全英文文档难以阅读和理解。
(5) 缺少必要的数据集、可运行的实验案例及学习平台。
(6) ......
特别是Spark 3发布以后,性能得到了极大的提升。为此,既是为了笔者自己能更系统更及时地跟进Spark/PySpark的演进和迭代,另一方面也是为了解决面向零基础小白学习PySpark(以及其他大数据技术)的入门难度,编写了这一本《PySpark实用教程》。个人以为,本书具有以下几个特点:
(1) 面向零基础小白,知识点深浅适当,代码完整易懂。
(2) 内容全面系统,包括架构原理、开发环境及程序部署、流和批计算、综合项目案例等。
(3) 版本先进,所有代码均基于Spark 3.1.2和Python 3.x。
(4) 全书包含大量的示例代码讲解和完整项目案例。
本书特别适合想要入门并深入掌握Apache Spark/PySpark大数据开发和大数据分析、大数据OLAP引擎、流计算的同学、希望拥有大数据系统参考教材的教师以及想要了解最新Spark/PySpark技术应用的从业人员。
因为水平所限,行文以及内容难免有错误和疏漏之处,请大家见谅,并予以反馈,笔者会在后续的版本重构中不断提升内容质量。
- 《Python爬虫技术》 (3007次下载)
- 《Spark实用教程_scala语言》 (261次下载)
- 《Flink实用教程_scala和python双语版》 (84次下载)
- 《PySpark实用教程_python语言》 (44次下载)
- 《Spark机器学习_scala语言》 (15次下载)
挣积分
用户可以上传项目资源到本站,我们会根据资源的质量和价值计算积分给用户。
用户可以使用自己账号下的积分换取本站VIP资源(教程、项目、图书等)。
请联系我们
- Email:zz_kapper@163.com
- QQ:185314368(张老师)