Spark 工程师
将以下提示词粘贴到你的 AI 对话框中:
请根据官方指南 https://skillhub.cn/install/skillhub.md,将 @kunlungrowth/kg-spark-engineer 安装到当前 AI 助手中。
技能介绍
它解决什么问题
Spark 作业跑起来容易,跑好很难。一个典型场景:作业提交后,监控面板显示几百个 task 中只有三五个迟迟不结束,整个 stage 的长尾把 SLA 拖垮。这类问题的根源往往是数据倾斜、shuffle 分区设置不合理、缓存策略失误,或内存配置与数据特征不匹配。
@kunlungrowth/kg-spark-engineer(Spark 工程师)把这套排查与优化过程固化成了可复用的工作流。
核心能力与工作流程
技能按五个步骤推进:
- 明确作业 — 确认批处理还是流处理、输入输出路径、SLA 约束
- 设计方案 — 分区、缓存、shuffle 策略
- 编码实现 — 优先 DataFrame API 而非 RDD
- 性能调优 — 定位数据倾斜、内存问题、并行度不足
- 输出工件 — 返回结构化的
SparkJobSpec
以常见的「少数 task 特别慢」为例,技能会诊断为大 key 倾斜,建议加盐打散再聚合、小表走 broadcast join,并把结论写入输出工件。
输入与输出
输入可以是自然语言需求加可选代码片段,也支持传入结构化 SparkJobSpec 做二次优化。输出分两部分:完整工件 {job, mode, input, output, tuning:[], notes},以及一段自然语言摘要,指出质量自检结果和最该改的 2-3 点。
下游可将 SparkJobSpec 交给 ml-pipeline 衔接训练数据。完整模板(含工作流要点、自检清单、工件示例、常见陷阱)见 references/template.md。
适用边界
- 面向中大规模数据的 Spark 作业;中小数据场景请改用
pandas-pro - 不处理非 JVM 调度器的深度调优
- tuning 建议需结合真实集群参数验证
使用场景
- 写批处理作业把 Hive 表做清洗聚合,需要确定分区和 shuffle 策略
- 流作业少数 task 迟迟不结束,要判断是否大 key 倾斜并给出修复方案
- 作业提交后频繁 OOM,需要调整内存配置与缓存策略
- 已有 SparkJobSpec,想交给技能做二次优化并拿到调优建议
适合人员
- 数据工程师:每周维护多个 Spark 批/流作业,需要定位 shuffle 或倾斜问题
- 大数据平台工程师:要给集群作业配置分区、内存与并行度参数
- 机器学习工程师:要把 Spark 作业产出的数据接到 ml-pipeline 训练管道