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 中均可加载,技能内命令片段仅作参考,运行前需结合实际集群版本调整。
使用步骤
- 提供作业信息:把慢作业的 Spark UI 链接、Query Plan、Stage 耗时、Executor 日志片段提交给 Agent。
- 识别瓶颈:Agent 根据 SKILL.md 中的执行模型知识,定位是 Partition 不合理、Shuffle 过多、数据倾斜、缓存不当,还是存储格式欠优。
- 应用优化建议:Agent 按优先级给出参数调整(如
spark.sql.adaptive.enabled=true)、代码改写(如 broadcast 替换 shuffle)、存储替换(Parquet → Delta + Z-order)等可执行建议。 - 验证效果:在测试环境按 Best Practices "一次只改一个变量" 的原则逐步验证,对比 runtime、spill、shuffle size 三个核心指标。
- 沉淀 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 但不复用"等常见误区。
官方链接
- Skillstore 详情页:https://skillstore.io/skills/sickn33-spark-optimization
- Markdown 原文:https://skillstore.io/skills/sickn33-spark-optimization.md
- 仓库地址:https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/spark-optimization
- Manifest:https://skillstore.io/api/skills/sickn33-spark-optimization/manifest
评论与建议
登录 后参与评论或提建议