sickn33 Spark 性能优化(spark-optimization) Skill 技能

## 技能简介 `sickn33-spark-optimization`(Optimize Apache Spark

技能简介

sickn33-spark-optimization(Optimize Apache Spark Jobs)是 Skillstore 上专门面向 Claude / Codex / Claude Code 的 PySpark 性能调优技能,针对"Spark 作业运行慢但定位瓶颈难、调参靠经验"的痛点。它系统化覆盖 Spark 执行阶段(Stage / Shuffle / Partition / Memory)、自适应查询执行(AQE)、Kryo 序列化、Shuffle 压缩、Executor 内存、Join 优化(Broadcast / Bucket / Salting)、缓存策略与存储格式(Parquet / Delta / Z-order)等关键调优点。

技能源自 sickn33 的 antigravity-awesome-skills 仓库,质量分 78(bronze 等级),已通过 Skillstore 完整审计(riskLevel=safe),支持 Claude、Codex、Claude Code 自动安装。

核心能力

  • 执行模型解析:解释 Spark 的 Stage 划分、Shuffle 数据倾斜、Partition 大小、Executor 内存压力的因果关系。
  • 配置模板:提供 PySpark 配置示例,覆盖 AQE、Kryo 序列化、Shuffle 压缩、Executor 内存分配等关键参数。
  • Join 优化策略:Broadcast Join、Bucket Join、Salting(盐化)等多种 Join 优化手段的适用场景与实现要点。
  • 缓存与持久化:指导 DataFrame 何时该 cache / persist / checkpoint,何时该释放缓存,避免内存浪费。
  • 监控指标体系:列出查询计划(Query Plan)、活跃 Stage、Executor 内存、Partition 倾斜度等监控指标。
  • 存储格式选型:对比 Parquet、Delta、Iceberg、Z-ordering 等存储格式在压缩比、查询性能、写入吞吐上的取舍。

安装配置

  • 通过 Skillstore 安装:执行 npx skillstore add sickn33/spark-optimization,自动下载技能包。
  • 手动安装:克隆 https://github.com/sickn33/antigravity-awesome-skills,把 skills/spark-optimization 软链或拷贝到 Claude Code 的 ~/.claude/skills/ 下。
  • 本地环境:使用示例需要 Python 3.10+、PySpark 3.5+、Java 11/17;监控相关需要 Spark History Server 已启用。
  • 工具适配:在 Claude Code / Codex / Claude.ai 中均可加载,技能内命令片段仅作参考,运行前需结合实际集群版本调整。

使用步骤

  1. 提供作业信息:把慢作业的 Spark UI 链接、Query Plan、Stage 耗时、Executor 日志片段提交给 Agent。
  2. 识别瓶颈:Agent 根据 SKILL.md 中的执行模型知识,定位是 Partition 不合理、Shuffle 过多、数据倾斜、缓存不当,还是存储格式欠优。
  3. 应用优化建议:Agent 按优先级给出参数调整(如 spark.sql.adaptive.enabled=true)、代码改写(如 broadcast 替换 shuffle)、存储替换(Parquet → Delta + Z-order)等可执行建议。
  4. 验证效果:在测试环境按 Best Practices "一次只改一个变量" 的原则逐步验证,对比 runtime、spill、shuffle size 三个核心指标。
  5. 沉淀 Runbook:把验证有效的优化点写入团队 Runbook,并配置监控告警阈值,避免线上回归。

适用场景

  • 离线 ETL 提速:日终批处理作业超过 SLA,需要缩短运行时间。
  • 流式作业降本:7×24 运行的 Spark Streaming 作业资源占用过高,需调优内存与 Shuffle。
  • 机器学习特征工程:大规模特征计算的 Spark 作业需要降级 Join 与聚合成本。
  • 数据湖查询加速:基于 Delta Lake / Iceberg 的查询响应过慢,需要优化存储布局。
  • 数据倾斜排查:单个 Task 运行时间是其他 Task 的几十倍,需要定位热点 Key 并应用 Salting。

适用人群

  • 大数据开发工程师,负责 Spark 作业性能调优。
  • 数据平台 SRE,需要降低集群资源消耗与作业排队时间。
  • 数据分析师,使用 PySpark 处理大规模数据时希望提升交互效率。
  • AI 协作团队,用 Claude / Codex 辅助生成 Spark 调优方案。
  • 准备 Spark 性能相关技术评审与面试的工程师。

工作原理

技能以 SKILL.md + PySpark 配置示例 + Prompt 模板的结构组织。Agent 加载后建立"执行模型 → 瓶颈识别 → 优化策略 → 验证方法"的推理链;用户提交慢作业信息后,Agent 按"先看证据(Spark UI / Query Plan)→ 再选策略(Partition / Shuffle / Cache / Storage)→ 后做对比(Runtime / Spill / Shuffle Size)"的流程输出方案。Best Practices 强调"先看证据后改配置、一次只改一个变量、改完必验输出正确性",Anti Patterns 列出"用 collect/count 偷懒做检查、无脑 broadcast 大表、加 cache 但不复用"等常见误区。

官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论