open source · v0.1.5 · local-first
Stop guessing why Spark jobs are slow.
SparkDoctor reads raw Apache Spark event logs and surfaces skew, spills, wasted shuffle work, failed stages, and SQL plan issues, without a Spark History Server or hosted backend. Everything runs locally on your machine.
$ sparkdoctor analyze path/to/eventlogGitHub →$ sparkdoctor analyze ./spill-heavy-eventlog.json --out ./report
SparkDoctor analyzed ./spill-heavy-eventlog.json
Application: spill_heavy_customer_etl
Duration: 10000 ms · Stages: 1 · Tasks: 2
Issues detected: 1 · Severity: medium=1
Top bottlenecks:
[medium] spill_pressure (stage 9)
→ stage 9 spilled 300 MiB to disk across 2 tasks
Analysis JSON: ./report/analysis.json
Recommendations: ./report/recommendations.mdWhat it detects today
- ·Task duration skew
- ·Shuffle partition skew
- ·Oversized shuffle partitions
- ·Low shuffle parallelism
- ·Spill pressure
- ·Memory & disk spill skew
- ·Too many tiny tasks
- ·Retry waste
- ·Heavy speculative execution
- ·Executor & host imbalance
- ·SQL plans with many exchanges
- ·Repeated SQL subtrees
- ·Possible missed exchange reuse
- ·Failed jobs and stages
SparkDoctor Pro
Catch Spark performance regressions before they reach production.
$24,000 / yearBilled annually
SparkDoctor Pro turns single-run Spark diagnostics into a repeatable team workflow. Compare baseline and current runs, detect regressions in runtime, shuffle, spill, failures, and bottlenecks, and fail CI when Spark jobs cross configured thresholds.
Pro keeps the same local-first model: run it inside your environment, keep Spark event logs under your control, and avoid sending sensitive Spark metadata to a SaaS platform.
- ·Compare baseline vs current Spark runs
- ·Detect runtime, shuffle, spill, failure, and bottleneck regressions
- ·Fail CI when configured regression thresholds are crossed
- ·Track performance trends across many Spark job runs
- ·Store run history in a local or customer-controlled database
- ·Batch analyze directories of Spark event logs
- ·Configure team thresholds and regression policies
- ·Generate team-ready reports for pull requests, incidents, and reviews
- ·Support local/self-hosted deployment workflows
Install
# From a GitHub release
$ curl -L -o sparkdoctor-0.1.5.zip \
https://github.com/khodosko/sparkDoctor/releases/download/v0.1.5/sparkdoctor-0.1.5.zip
$ unzip sparkdoctor-0.1.5.zip
$ ./sparkdoctor-0.1.5/bin/sparkdoctor --helpRequires Java 17. Reads local files and directories: plain, gzip, Zstandard, LZ4, and Snappy event logs. Full docs →