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