Apache Spark has no vendor. Spark support comes from the Apache Spark community for maintained release branches, from Databricks and the cloud providers for their own Spark-based platforms, and from independent providers for the self-managed Spark clusters and jobs that those platforms do not cover. The project's maintenance windows are short, and they recently got shorter for most releases.
What Spark is, and why that shapes support
Apache Spark is an open-source unified engine for large-scale data processing, a top-level project of the Apache Software Foundation. One Spark cluster runs several kinds of workload through one set of APIs: batch data processing on Spark Core, queries with Spark SQL, stream processing with Structured Streaming, machine learning with MLlib and graph processing with GraphX. Teams write Spark applications in Python with PySpark, in Scala, in Java or in SQL, and newer releases add Spark Connect, which gives remote connectivity to Spark clusters from a thin client, and the pandas API on Spark. It grew up alongside Apache Hadoop as a faster alternative to Hadoop MapReduce and still commonly reads from HDFS and Apache Hive, though most new Spark workloads sit on object storage and Kubernetes.
That breadth is the support problem. A data analytics team running nightly Spark SQL, a streaming analytics team running Structured Streaming against Kafka, and a data science team training models are all "using Spark", and they fail in completely different ways. Support has to cover the Spark architecture itself, the driver, executors and cluster manager, and also the language runtime, the data source connectors and the dataset layout underneath. No single vendor covers all of that for a cluster you run yourself.
What the Apache Spark project maintains
The project's versioning policy sets out a new cadence starting with Spark 4.3.0: feature releases every quarter, a major release every year, and maintenance releases as needed for critical bug fixes and security patches. A major or feature release branch is maintained for six months. The last release in each major line is designated long-term support (LTS) and maintained for 18 months. Spark 3.5.x is the stated exception, with an extended LTS period ending in November 2027 during which it receives security fixes only.
In practical terms, if you run anything other than an LTS release, you are outside project maintenance within half a year. If you run Spark 3.5, you have security fixes until late 2027 and no bug fixes. Spark 2.x and earlier 3.x branches are unmaintained. As with any Apache project, maintenance means releases. Questions go to the mailing lists and Stack Overflow, with no response time.
Commercial Spark platforms
Databricks, founded by Spark's creators, supports the Databricks Runtime on its own platform. Amazon EMR, Google Dataproc, Azure Synapse and Microsoft Fabric each ship and support their own Spark builds with their own version calendars. Cloudera supports Spark inside its distribution. Every one of these supports the platform and its runtime. None supports the job you wrote. When an executor dies with an out-of-memory error at 2am, the platform vendor will confirm the cluster is healthy and they will be right.
The Spark incidents that actually page people
- Executor out-of-memory errors. A join or aggregation on a skewed key sends most of the data to a few partitions, and those executors die while the rest sit idle. Adaptive query execution helps with skew, and salting or repartitioning solves what it cannot.
- Broadcast joins that stop fitting. A dimension table grew past the broadcast threshold or past driver memory, and a job that ran for a year fails or slows by an order of magnitude when Spark falls back to a shuffle join.
- Shuffle failures. Fetch failures and lost shuffle files appear when executors are pre-empted, disks fill with shuffle spill, or dynamic allocation removes an executor that still held shuffle data. An external shuffle service or a different storage layout is usually the answer.
- The small files problem. Thousands of tiny output files make every downstream read slow and hammer the object store or the metastore. Compaction, sensible partitioning and table formats such as Delta or Iceberg fix it at the source.
- Streaming jobs that fall behind. A Structured Streaming query accumulates state without a watermark, checkpoints grow, batches take longer than their trigger interval, and lag climbs until someone restarts it and loses the state.
- Cost that doubled without new work. Over-provisioned executors, jobs that never release resources and full recomputation where incremental processing would do. This is a support question as much as a finance one.
Upgrading between Spark versions
Spark 3 to Spark 4 is a meaningful jump. Spark 4 requires newer Java and Scala versions, turned ANSI SQL mode on by default, which changes how overflows, invalid casts and division by zero behave, and removed APIs that had been deprecated for years. Jobs that silently produced nulls can now fail, which is correct and inconvenient. The migration guides list behaviour changes per module, and the realistic plan is to run the existing test suite and a sample of production jobs against the new version with result comparison, not just success or failure. Connectors, UDF libraries and table format versions all have their own compatibility matrix against the Spark version and need to move together.
What to ask a Spark support provider
- Will you read our job code? Spark incidents are rarely cluster faults. A provider that only looks at infrastructure metrics cannot fix a skewed join.
- Which platforms and versions? Ask about your actual mix: open-source Spark on Kubernetes, EMR, Databricks, and the Spark 2.4 job nobody dares touch.
- Batch and streaming? Structured Streaming has its own failure modes around state, checkpoints and exactly-once sinks, and not every Spark team has run it in production.
- Can you show cost results? A competent review of a busy cluster usually finds savings, and a provider should be able to describe how.
- Who responds at night? Pipelines fail during the batch window. Ask whether the response is an engineer or a ticket number.
Where independent Spark support fits
- Self-managed Spark on Kubernetes, YARN or standalone clusters, including unmaintained versions.
- Job-level problems on any platform, where the vendor supports the runtime and nobody supports the pipeline.
- Performance and cost reviews, which pay for themselves on any cluster of real size.
- Upgrades and migrations, including Hadoop-era estates moving to object storage and modern table formats.
AceMQ provides 24/7 Apache Spark support with a 15-minute emergency SLA and named senior data engineers, for self-managed clusters and for Spark workloads on Databricks, EMR and Dataproc. Examples: an executor OOM and partition skew remediation and a Spark workload cost assessment.
Frequently Asked Questions
Who provides Apache Spark support?
The Apache Spark community maintains current release branches with no response time. Databricks, Amazon EMR, Google Dataproc and Cloudera support their own Spark platforms. Independent providers such as AceMQ support self-managed Spark and the jobs running on any platform.
How long is a Spark version maintained?
Under the versioning policy that starts with Spark 4.3.0, major and feature release branches are maintained for six months, and the last release of each major line is an LTS maintained for 18 months.
Is Spark 3.5 still supported?
Spark 3.5.x has an extended LTS period ending in November 2027, during which it receives security fixes only.
Does Databricks or EMR support cover my Spark jobs?
They support the platform and runtime. Job logic, data skew, memory configuration and pipeline design are your responsibility or your support provider's.
Is there commercial support for open-source Apache Spark?
Yes. Platform vendors support their own distributions, and independent providers offer support contracts for self-managed open-source Spark on any version.