Back to blog

Databricks and Spark Explained for AWS Engineers

Map S3, Glue, EMR and Lake Formation onto Spark, Delta Lake, Unity Catalog and Databricks — and learn where the analogies stop.

Chris Eberl

Chris Eberl

Founder • Engineering Leader, GenAI, Data, ML

Data EngineeringOct 12, 20269 min read
Databricks and Spark Explained for AWS Engineers

If you already work with AWS, learning Databricks can feel like learning a second set of names for problems you understand. You have S3 for storage, Glue or EMR for processing, and services for orchestration, governance, and SQL queries. Where do Spark, Delta Lake, and Unity Catalog fit?

The quickest way in is to map responsibilities. AWS analogies help you find your bearings, provided you leave room for differences in architecture and operating model.

Thank you to Data with Baraa for What is Databricks? The Story Behind the Modern Data Platform (Visual Explanation). This video was useful in building a shared understanding of Databricks and how the pieces fit together — a helpful starting point for the AWS comparisons below.

Imagine a familiar requirement: order files arrive in S3, a pipeline cleans them, and analysts need daily revenue by country. We will use that pipeline to connect the terminology to decisions you would actually make.

Start with four separate layers

Field sketch

Four layers, four different questions

  1. 01

    S3

    Where do the bytes live?

  2. 02

    Delta Lake

    What makes files a table?

  3. 03

    Spark

    Which engine does the work?

  4. 04

    Databricks

    Who coordinates access + ops?

Each layer answers a different architectural question.

Keep these four concepts apart:

  • S3 stores the bytes. Objects contain the input files and can also contain the data underlying analytical tables.
  • Delta Lake gives files table semantics. Its format combines Parquet data with a transaction log.
  • Spark performs distributed computation. It reads, transforms, joins, aggregates, and writes data.
  • Databricks provides the surrounding platform. It brings together compute, development, orchestration, governance, and other data capabilities.

These layers cooperate. A Spark application running on Databricks can read objects from S3 and write a Delta table backed by object storage. The platform, processing engine, table format, and storage service each answer a different architectural question. Databricks architecture, Delta Lake overview

When a new term appears, first ask which responsibility it describes. That habit prevents a surprising number of misunderstandings.

Responsibility map (orientation, not equivalence)

ResponsibilityFamiliar AWS referenceDatabricks / open-source pieceWhere the analogy breaks
Object storageS3S3 (unchanged)No break — Databricks on AWS can use the same buckets
Table semanticsParquet + Glue table definitionsDelta Lake transaction logDelta adds ACID commits; check reader/writer feature support per engine
Distributed processingGlue Spark jobs, EMRApache Spark on Databricks computeSame engine, but runtimes, connectors and APIs still need checking
Catalog and governanceGlue Data Catalog, Lake FormationUnity CatalogDifferent permission model; IAM still governs storage access
SQL servingAthena, RedshiftDatabricks SQL warehouseWorkload comparison only; billing, scaling and SQL dialect differ
OrchestrationStep Functions, MWAALakeflow JobsA Lakeflow job is not a Spark job
Stream processingManaged Apache FlinkStructured StreamingKinesis is transport, not the processing comparison

Spark is already part of the AWS picture

Spark is the actual processing engine available through Amazon EMR and used by Spark-based AWS Glue ETL jobs. This is a direct technology connection, stronger than an analogy. If you have written PySpark transformations in Glue, you have already used Spark. Spark on Amazon EMR, AWS Glue overview

That experience gives you a useful starting point in Databricks: filtering DataFrames, joining datasets, and grouping records remain familiar operations. Moving an application still requires checking runtime versions, dependencies, connectors, credentials, and service-specific APIs. Familiar syntax alone cannot establish compatibility.

Comparing Databricks with EMR helps orient the compute discussion, but it captures only part of Databricks. A workspace also supports activities such as interactive exploration, scheduled workloads, and machine learning, with governance connected through Unity Catalog. Describing it as a notebook attached to a cluster misses that wider platform role. Databricks architecture

Think about application processes rather than whole machines

A Spark application has a driver that coordinates work and executors that run tasks. A cluster manager allocates resources. Executors are processes; a worker machine and an executor are different concepts. Spark cluster overview

If you know EKS, imagine an application with a coordinator and worker processes. That analogy helps explain the roles, but the Spark driver coordinates its application rather than acting as the Kubernetes control plane. Spark also supports deployment outside Kubernetes.

Spark divides distributed data into partitions that tasks can process separately. Execution partitions are different from S3 prefixes such as orders/date=2026-10-12/. One describes how a calculation divides work; the other describes object naming and potentially a table's storage layout. Do not assume one folder means one task. Spark programming guide

For the orders pipeline, a country-level aggregation may require redistributing records so matching keys reach the same processing group. This shuffle can make network traffic and uneven data distribution important, even when the input fits comfortably in S3. Spark shuffle operations

Delta Lake adds a table contract to stored files

A directory of Parquet files gives you a useful file format. Delta Lake adds a transaction log that tracks the table's state and supports ACID transactions. The underlying data still lives in storage; on AWS, that can be S3. Delta Lake overview

For orders, this distinction matters when yesterday's records need corrections. You want readers to see a committed table state while a writer applies changes. Delta provides a protocol for coordinating those changes, rather than leaving every application to infer a table from whatever files it discovers.

Treat the table through compatible table operations. Manually deleting objects from its backing directory can undermine the table state recorded in the log. Also check reader and writer compatibility before enabling table features across multiple engines. Delta Lake operations and compatibility

The practical question is therefore: which systems need to read and update this table, and which table features do they support?

Unity Catalog belongs in the governance conversation

For an AWS-oriented mental model, place Unity Catalog near the responsibilities of Glue Data Catalog and Lake Formation: discovering data assets, organizing metadata, and governing access. This is a comparison of responsibilities, rather than a promise of matching APIs or permissions. AWS catalog and governance context, Unity Catalog overview

A table might appear as commerce.analytics.daily_revenue. That name describes a governed object in a catalog and schema. Unity Catalog also provides capabilities such as lineage and auditing, helping teams understand how assets relate and how they are used. Unity Catalog overview

AWS IAM remains relevant to access to AWS resources. Giving an analyst permission on a table and configuring the platform's authorized access to its S3 storage are different concerns. During design reviews, ask both questions: who may query the object, and how does the compute obtain access to the underlying storage? Databricks storage architecture

Separate SQL serving from pipeline orchestration

A Databricks SQL warehouse is a compute resource for querying data. Think about the analyst-facing workloads you might serve with Athena or Redshift: exploration, reporting, and BI connections. The comparison concerns the workload. It does not imply identical storage architecture, billing, scaling, or SQL behavior. The word “warehouse” here names query compute, so do not picture it simply as the place where table files are stored. SQL warehouses

Lakeflow Jobs coordinates tasks, dependencies, schedules, and runs. If your AWS pipeline uses Step Functions or Airflow through MWAA, that orchestration role is a helpful reference point. A pipeline might ingest orders, validate them, and then refresh an aggregate. Lakeflow Jobs

Be careful with the overloaded word “job.” A Lakeflow job describes a platform workflow. A Spark job is an internal execution concept associated with work triggered by an action. One workflow task running Spark can trigger multiple Spark jobs. Keeping those levels separate makes troubleshooting conversations much clearer. Spark execution terminology

Follow the orders through both architectures

Here is one possible AWS-oriented design:

  • Order files land in an S3 input prefix.
  • A Glue Spark job validates fields, removes duplicate records, and produces a curated dataset.
  • A second transformation calculates daily revenue by country.
  • A catalog makes the datasets discoverable, and a SQL query layer serves analysts.
  • An orchestrator coordinates the steps and failure handling.

Now express the same requirements with Databricks:

  • Keep the S3 input location and configure authorized access.
  • Run Spark transformations to clean the orders and write a Delta table.
  • Produce a separate daily revenue table.
  • Govern the tables through Unity Catalog and query them using a SQL warehouse.
  • Use Lakeflow Jobs to coordinate the pipeline.
Field sketch

Same orders, same requirements, different platform

  1. 01

    S3 input

    Order files land · authorized access

  2. 02

    Spark clean

    Glue job or Databricks compute

  3. 03

    Governed tables

    Glue/Lake Formation or Unity Catalog

  4. 04

    SQL serving

    Athena/Redshift or SQL warehouse

One orders pipeline expressed in both architectures.

These are illustrative designs, not migration instructions. Existing S3 data can remain in place where the chosen access and table configuration support it. Adopting Databricks does not automatically convert files, register tables, translate permissions, or migrate orchestration. Managed and external storage choices need deliberate design. Databricks storage architecture

Before calling either pipeline production-ready, test the awkward cases: a file arrives twice, a currency field is missing, orders mix currencies, a refund or correction arrives days later, or a run fails after writing output. The business requirement is trustworthy revenue; selecting the platform only establishes where you will implement that behavior.

Streaming follows the same separation of responsibilities

If orders arrive through Kinesis instead of daily files, keep transport and processing distinct. Kinesis can supply events to Structured Streaming on Databricks through its Kinesis connector. Databricks Kinesis integration

For the processing role, an Apache Flink application is a closer conceptual comparison than a Kinesis stream. Both invite questions about state, late data, and recovery, but their execution models and operational choices differ. Avoid carrying over latency or delivery guarantees without checking the complete source, processing, and sink configuration.

Where the AWS analogies stop helping

The mappings become risky when they turn into assumed equivalence. A familiar responsibility does not guarantee the same security boundary, deployment model, failure behavior, or cost profile.

In particular, verify where compute and storage live. Classic Databricks compute runs in your AWS account, while serverless compute runs in a Databricks-managed compute plane. Workspace storage arrangements also differ. The blanket statement that everything always stays in your AWS account is inaccurate. Databricks deployment architecture

Field sketch

Two access questions, not one

  1. 01

    Analyst

    Who may query the table?

  2. 02

    Unity Catalog

    Grants on governed objects

  3. 03

    Compute

    Classic: your account · serverless: Databricks-managed

  4. 04

    S3 storage

    How does compute reach the bytes?

Query permissions and storage access are separate design decisions.

Use your AWS experience to ask better questions: where are the bytes, what gives them table semantics, which engine performs the work, and which platform coordinates access and operations? Once those boundaries are clear, the product names become much easier to learn.

New to Spark itself? Start with the Spark foundations primer, then try the hands-on Spark for Streaming Media Analytics series.

Read next

Newsletter

New posts, straight from Chris

A short note from me whenever a new article goes live — product engineering, AI workflows, IoT, indie apps, and engineering leadership. No spam, unsubscribe anytime.

By subscribing, you agree to our Privacy Policy. We do not share your email.