用途:面向生产环境的 Apache Spark 作业优化,帮助改善慢作业、调试性能问题、调整内存与执行器配置、实现高效分区策略、扩展大规模数据集管道,并减少 Shuffle 与数据倾斜。
主要能力:围绕 Spark 执行模型(Driver→Job→Stage→Task)与关键性能因素展开,包括 Shuffle 网络与磁盘 I/O、数据倾斜导致的任 务时长不均、序列化 CPU 开销、内存 GC 压力与溢写、分区并行度等,并给出对应解决思路,如减少宽依赖转换、加盐与广播连接、使用 Kryo 与列式格式、调优执行器内存、合理设置分区大小。
使用方式:技能提供快速上手示例,创建 SparkSession 时启用自适应查询执行(AQE)相关配置,例如 spark.sql.adaptive.enabled、spark.sql.adaptive.coalescePartitions.enabled、spark.sql.adaptive.skewJoin.enabled,设置 spark.serializer 为 KryoSerializer 及 spark.sql.shuffle.partitions;读取 Parquet 时可设置 mergeSchema;转换阶段使用 filter、select、groupBy、agg 等内置操作,写出使用 parquet。更详细的模式与示例位于 references/details.md。
适用场景:优化慢 Spark 作业、调优内存与执行器、实现高效分区、调试性能问题、扩展大规模数据管道、降低 Shuffle 与数据倾斜。
限制与注意事项:资料未提供具体版本兼容性、集群环境要求或性能基准数据。建议做法包括启用 AQE、使用 Parquet/Delta 列式压缩格式、广播小表、监控 Spark UI 检查倾斜与溢写、将分区控制在 128MB–256MB;避免 collect 大数据、不必要地使用 UDF、过度缓存、忽视数据倾斜,以及用 count() 判断存在性(应使用 take(1) 或 isEmpty())。本技能内容源自 wshobson/agents,遵循 MIT 许可,使用、修改与再分发须保留版权声明。