Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
wshobson avatar

Spark Optimization

  • 8.3k installs
  • 38.3k repo stars
  • Updated July 22, 2026
  • wshobson/agents

spark-optimization is an agent skill that Optimize Apache Spark jobs with partitioning, caching, shuffle optimization, and memory tuning. Use when improving Spark performance, debugging slow jobs, or sc.

About

Optimize Apache Spark jobs with partitioning caching shuffle optimization and memory tuning Use when improving Spark performance debugging slow jobs or scaling data processing pipelines name spark-optimization description Optimize Apache Spark jobs with partitioning caching shuffle optimization and memory tuning Use when improving Spark performance debugging slow jobs or scaling data processing pipelines Apache Spark Optimization Production patterns for optimizing Apache Spark jobs including partitioning strategies memory management shuffle optimization and performance tuning When to Use This Skill Optimizing slow Spark jobs Tuning memory and executor configuration Implementing efficient partitioning strategies Debugging Spark performance issues Scaling Spark pipelines for large datasets Reducing shuffle and data skew Core Concepts 1 Spark Execution Model Driver Program Job triggered by action Stages separated by shuffles Tasks one per partition 2 Key Performance Factors Factor Impact Solution Shuffle Network I O disk I O Minimize wide transformations Data Skew Uneven task duration Salting broadcast joins Serialization CPU overhead Use Kryo columnar formats Memory GC pressure spil.

  • Apache Spark Optimization
  • Optimizing slow Spark jobs
  • Tuning memory and executor configuration
  • Implementing efficient partitioning strategies
  • Debugging Spark performance issues

Spark Optimization by the numbers

  • 8,322 all-time installs (skills.sh)
  • +172 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #113 of 4,386 Backend & APIs skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

spark-optimization capabilities & compatibility

Capabilities
apache spark optimization · optimizing slow spark jobs · tuning memory and executor configuration · implementing efficient partitioning strategies · debugging spark performance issues
Use cases
documentation
From the docs

What spark-optimization says it does

--- name: spark-optimization description: Optimize Apache Spark jobs with partitioning, caching, shuffle optimization, and memory tuning.
SKILL.md
Use when improving Spark performance, debugging slow jobs, or scaling data processing pipelines.
SKILL.md
--- # Apache Spark Optimization Production patterns for optimizing Apache Spark jobs including partitioning strategies, memory management, shuffle optimization, and performance tuning.
SKILL.md
Spark Execution Model ``` Driver Program ↓ Job (triggered by action) ↓ Stages (separated by shuffles) ↓ Tasks (one per partition) ``` ### 2.
SKILL.md
npx skills add https://github.com/wshobson/agents --skill spark-optimization

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs8.3k
repo stars38.3k
Security audit3 / 3 scanners passed
Last updatedJuly 22, 2026
Repositorywshobson/agents

What problem does spark-optimization solve for developers using this skill?

Optimize Apache Spark jobs with partitioning, caching, shuffle optimization, and memory tuning. Use when improving Spark performance, debugging slow jobs, or scaling data processing pipelines.

Who is it for?

Developers who need spark-optimization patterns described in the cached skill documentation.

Skip if: Skip when docs are empty or the task is outside the skill's documented scope.

When should I use this skill?

Optimize Apache Spark jobs with partitioning, caching, shuffle optimization, and memory tuning. Use when improving Spark performance, debugging slow jobs, or scaling data processing pipelines.

What you get

Actionable workflows and conventions from SKILL.md for spark-optimization.

  • optimized partition configuration
  • tuned Spark job code

By the numbers

  • Targets 128MB–256MB optimal partition size for Spark tasks

Files

SKILL.mdMarkdownGitHub ↗

Apache Spark Optimization

Production patterns for optimizing Apache Spark jobs including partitioning strategies, memory management, shuffle optimization, and performance tuning.

When to Use This Skill

  • Optimizing slow Spark jobs
  • Tuning memory and executor configuration
  • Implementing efficient partitioning strategies
  • Debugging Spark performance issues
  • Scaling Spark pipelines for large datasets
  • Reducing shuffle and data skew

Core Concepts

1. Spark Execution Model

Driver Program
    ↓
Job (triggered by action)
    ↓
Stages (separated by shuffles)
    ↓
Tasks (one per partition)

2. Key Performance Factors

FactorImpactSolution
ShuffleNetwork I/O, disk I/OMinimize wide transformations
Data SkewUneven task durationSalting, broadcast joins
SerializationCPU overheadUse Kryo, columnar formats
MemoryGC pressure, spillsTune executor memory
PartitionsParallelismRight-size partitions

Quick Start

from pyspark.sql import SparkSession
from pyspark.sql import functions as F

# Create optimized Spark session
spark = (SparkSession.builder
    .appName("OptimizedJob")
    .config("spark.sql.adaptive.enabled", "true")
    .config("spark.sql.adaptive.coalescePartitions.enabled", "true")
    .config("spark.sql.adaptive.skewJoin.enabled", "true")
    .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
    .config("spark.sql.shuffle.partitions", "200")
    .getOrCreate())

# Read with optimized settings
df = (spark.read
    .format("parquet")
    .option("mergeSchema", "false")
    .load("s3://bucket/data/"))

# Efficient transformations
result = (df
    .filter(F.col("date") >= "2024-01-01")
    .select("id", "amount", "category")
    .groupBy("category")
    .agg(F.sum("amount").alias("total")))

result.write.mode("overwrite").parquet("s3://bucket/output/")

Detailed patterns and worked examples

Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

Best Practices

Do's

  • Enable AQE - Adaptive query execution handles many issues
  • Use Parquet/Delta - Columnar formats with compression
  • Broadcast small tables - Avoid shuffle for small joins
  • Monitor Spark UI - Check for skew, spills, GC
  • Right-size partitions - 128MB - 256MB per partition

Don'ts

  • Don't collect large data - Keep data distributed
  • Don't use UDFs unnecessarily - Use built-in functions
  • Don't over-cache - Memory is limited
  • Don't ignore data skew - It dominates job time
  • Don't use `.count()` for existence - Use .take(1) or .isEmpty()

Related skills

How it compares

Choose spark-optimization when you need Spark-specific partition and shuffle tuning rather than general SQL query optimization.

FAQ

What does spark-optimization do?

Optimize Apache Spark jobs with partitioning, caching, shuffle optimization, and memory tuning. Use when improving Spark performance, debugging slow jobs, or scaling data processing pipelines.

When should I use spark-optimization?

Optimize Apache Spark jobs with partitioning, caching, shuffle optimization, and memory tuning. Use when improving Spark performance, debugging slow jobs, or scaling data processing pipelines.

Is spark-optimization safe to install?

Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.