Course Code: pysprkub
Duration: 21 hours

Prerequisites:

学员应具备以下条件:

  • 具备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、平台和云工程师
  • 参与设计或优化现代数据处理平台的技术负责人和解决方案架构师

Overview:

本课程为期三天,注重实操,旨在利用Kubernetes环境中的PySpark、Pandas和Polars构建并优化高效的数据处理工作负载。

学员将深入理解Spark应用在Kubernetes上的执行机制,以及应用层配置决策如何影响性能、可扩展性、资源消耗和成本。课程涵盖关键优化领域,包括执行器规模调整、内存分配、动态分配、分区策略、Shuffle行为、小文件问题及高效的Parquet处理。

课程还探讨了使用Pandas时面临的常见挑战,如内存限制和内存溢出故障,并引入Polars作为特定数据处理工作负载的高性能替代方案。通过动手练习,学员将诊断性能和内存问题,比较不同的配置策略,并将优化技术应用到真实的ETL和机器学习场景中。

课程始终强调实用决策能力:理解如何识别瓶颈、选择合适的工具、高效配置Spark,并平衡性能与基础设施资源消耗及成本。

Course Outline:

模块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配置

Sites Published:

United Arab Emirates - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Qatar - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Egypt - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Saudi Arabia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Africa - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Brasil - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

Canada - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

中国 - 基于Kubernetes使用PySpark、Pandas和Polars实现高效数据处理

香港 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

澳門 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

台灣 - 使用PySpark、Pandas和Polars在Kubernetes上進行高效資料處理

USA - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Österreich - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Schweiz - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Deutschland - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Czech Republic - Efektivní zpracování dat v Kubernetes pomocí PySpark, Pandas a Polars

Denmark - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Estonia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Finland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Greece - Αποτελεσματική Επεξεργασία Δεδομένων σε Kubernetes με PySpark, Pandas & Polars

Magyarország - Hatékony adatfeldolgozás Kubernetesben PySpark, Pandas és Polars segítségével

Ireland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Luxembourg - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Latvia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

España - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Italia - Elaborazione dati efficiente su Kubernetes con PySpark, Pandas e Polars

Lithuania - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nederland - Efficiënte verwerking van data op Kubernetes met PySpark, Pandas & Polars

Norway - Effektiv databehandling på Kubernetes med PySpark, Pandas og Polars

Portugal - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

România - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Sverige - Effektiv datahantering med PySpark, Pandas och Polars på Kubernetes

Türkiye - Kubernetes Ortamında PySpark, Pandas ve Polars ile Verimli Veri İşleme

Malta - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Belgique - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

France - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

日本 - KubernetesにおけるPySpark、Pandas、Polarsによる効率的なデータ処理

Australia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Malaysia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

New Zealand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Philippines - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Singapore - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Thailand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Vietnam - Xử lý dữ liệu hiệu quả trên Kubernetes bằng PySpark, Pandas & Polars

India - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Argentina - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Chile - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Costa Rica - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Ecuador - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Guatemala - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Colombia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

México - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Panama - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Peru - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Uruguay - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Venezuela - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Polska - Skuteczne przetwarzanie danych w Kubernetesie z wykorzystaniem PySpark, Pandas i Polars

United Kingdom - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Korea - PySpark, Pandas 및 Polars를 활용한 Kubernetes에서 효율적인 데이터 처리

Pakistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Sri Lanka - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bulgaria - Ефективна обработка на данни в Kubernetes с PySpark, Pandas и Polars

Bolivia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Indonesia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kazakhstan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Moldova - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Morocco - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Tunisia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kuwait - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Oman - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovakia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kenya - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nigeria - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Botswana - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovenia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Croatia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Serbia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bhutan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nepal - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Uzbekistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

US Government - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars