联系我们
 课程时长 21 小时

课程大纲

模块1:大数据与Spark基础

  • 大数据生态系统概览及Spark在现代数据平台中的角色
  • 理解Spark架构:驱动器、执行器、集群管理器、延迟计算、DAG和执行计划
  • RDD与DataFrame API的区别及适用场景
  • 创建和配置SparkSession,理解应用配置基础

模块2:PySpark DataFrame

  • 从企业源和格式读写数据:CSV、JSON、Parquet和Delta
  • 使用PySpark DataFrame:转换、行动、列表达式、筛选、连接和聚合
  • 实施高级操作,如窗口函数、时间戳处理和嵌套数据处理
  • 应用数据质量检查,编写可重用、可维护的PySpark代码

模块3:面向Spark用户的Kubernetes与Docker基础

  • 理解Docker镜像和Kubernetes Pod与Spark驱动器和执行器进程的关系——面向集群使用者的概念视图,而非管理员视角
  • 理解Spark作业在Kubernetes上运行时发生的事情:Pod调度、资源请求与限制,以及会话设置如何映射到这些资源
  • 理解通过Spark会话参数控制的内容,与平台团队通过集群配置控制的内容之间的界限——以及这种界限对调优的重要性
  • 动手练习: 在沙箱集群中检查运行中的Spark-on-Kubernetes作业,并识别驱动器和执行器Pod

模块4:Kubernetes上的Spark会话配置——深入解析

  • 理解执行器数量与执行器规模:内存与核心的权衡及推理方法
  • 驱动器和执行器内存分配、内存开销,以及这些参数如何转化为Pod资源
  • 动态分配:在Kubernetes上的行为、何时节省资源及何时不节省
  • 动手练习: 在不同执行器和核心配置下运行相同作业,比较运行时间和资源使用率

模块5:扩展行为与成本优化

  • 理解添加或移除节点如何改变作业行为、完成时间和资源消耗
  • 比较多小执行器与少大执行器:性能与成本权衡
  • Shuffle行为和Shuffle分区调整,包括估算配置选择的成本影响
  • 动手练习: 将沙箱集群从5个节点扩展至10个节点,观察对作业完成时间和资源消耗的影响

模块6:高效数据摄取与分区

  • 理解小文件问题:为何分散在许多1-5 MB Parquet文件中的源数据会降低性能并扭曲分区
  • 重新分区(Repartitioning)和合并(Coalescing)策略
  • 控制读取和写入时的分区大小
  • 高效写入Parquet,避免在下游重新产生小文件问题
  • 动手练习: 加载由许多小Parquet分区组成的数据集,应用不同的重新分区策略,并比较优化前后的性能

模块7:Pandas内存管理与故障诊断

  • 理解Pandas内存溢出错误的根本原因及识别症状
  • 应用Spark与Pandas之间内存高效的转换模式
  • 避免将大型数据集写入CSV时的内存膨胀
  • 在受限环境中使用分块处理和数据类型优化
  • 动手练习: 重现典型的Pandas内存溢出场景,并使用分块和数据类型优化解决问题

模块8:Polars作为互补工具

  • Polars相对于Pandas的定位:性能特征、延迟计算和内存行为
  • 理解Polars在现代云端数据堆栈和迁移路线图(包括AWS环境)中与PySpark和Pandas的互补位置
  • 动手练习: 使用Polars重写重度依赖Pandas的转换过程,并比较内存使用率和处理速度

模块9:将优化应用于ETL和ML工作负载

  • 在真实的ETL管道中应用配置、分区和内存管理原则
  • 理解运行在同一集群上的机器学习工作负载特有的优化考量
  • 应用实用的调优工作流程,系统性地诊断成本和性能问题
  • 动手练习: 完成一个端到端的小项目,结合数据加载、转换和简单模型训练步骤,由学员自行调优Spark配置

要求

学员应具备以下条件:

  • 具备Python编程实操经验,包括函数、模块及基本的面向对象概念。
  • 具备使用Pandas进行表格数据处理工作流的基本至中级经验。
  • 熟悉PySpark和Spark DataFrame,包括数据读取、转换、行动、连接和聚合操作。
  • 了解SQL和数据处理概念,包括筛选、分组和数据集连接。
  • 了解Docker和Kubernetes基本概念,如容器、镜像和Pod。无需具备Kubernetes管理经验。
  • 熟悉CSV、JSON和Parquet等常见数据格式。

学员无需是Kubernetes管理员或基础设施专家。课程重点在于帮助数据工程师、开发人员和数据科学家从应用和配置角度理解和优化运行在Kubernetes上的Spark工作负载。

目标受众

本课程专为在云端或容器化环境中使用Python和Spark开发、维护或优化数据处理和机器学习工作负载的专业人士设计。

特别适用于:

  • 从事PySpark、分布式数据处理和ETL管道的数据工程师。
  • 使用Spark、Pandas或Polars处理大型数据集或运行机器学习工作负载的数据科学家。
  • 从事数据密集型应用开发,并致力于提升内存效率和处理性能的Python开发者。
  • 在共享Kubernetes或云端环境中管理数据准备和模型训练工作负载的机器学习工程师。
  • 处理大型数据集并寻求提升数据处理效率的分析工程师。
  • 支持Kubernetes上Spark工作负载,需理解应用层配置如何影响资源使用率和性能的DevOps、平台和云工程师。
  • 参与设计或优化现代数据处理平台的技术负责人和解决方案架构师。

客户评论 (1)

即将举行的公开课程

课程分类