Home / data-analytics / Databricks Certified Data Engineer Associate / Cheat Sheet
Databricks Certified Data Engineer Associate

Databricks DE Assoc Cheat Sheet

Databricks DE Assoc Tests Choosing the Right Tool per Workload — Not Professional-Level Tuning

For engineers starting out on the lakehouse. The exam published 4 May 2026 asks which compute, ingestion tool, job trigger or grant fits a described workload, and expects you to read PySpark and SQL snippets.

Check Your Readiness →
Among the harder certs
Avg: Not published by Databricks
Pass: 750 / 1000
Most candidates understand Databricks Certified Data Engineer Associate concepts — and still fail. This exam tests how you apply knowledge under pressure.

Data Engineer Associate Domain Map (May 2026 exam)

Forty-five scored questions in 90 minutes. Compared with the professional exam, items test sensible defaults rather than edge-case trade-offs: which compute is cheapest for a schedule, what a COPY INTO rerun does, which Run if setting lets cleanup run, and which grants let a group query a table.

  1. 01
    Data Transformation and Modeling (22%) — bronze-to-silver cleaning, joins, unions, explode, Gold objects, expectations
  2. 02
    Data Ingestion and Loading (21%) — COPY INTO, Auto Loader schema evolution, Lakeflow Connect, JDBC reads, VARIANT
  3. 03
    Working with Lakeflow Jobs (16%) — task DAGs, Run if, For each, If/else, triggers, repair runs
  4. 04
    Governance and Security (15%) — managed vs external tables, grants, row filters, column masks, ABAC
  5. 05
    Implementing CI/CD (10%) — Git folders, Declarative Automation Bundles, targets, variables, bundle CLI
  6. 06
    Troubleshooting, Monitoring, and Optimization (10%) — run history, Spark UI skew and spill, liquid clustering
  7. 07
    Databricks Intelligence Platform (6%) — control vs compute plane, Delta log, compute types and cost

Wrong instinct vs correct approach

Files land in a Unity Catalog volume at unpredictable times and should be processed promptly
✕ Wrong instinct

Schedule the job to run every minute

✓ Correct approach

Frequent schedules burn compute on empty runs. A file arrival trigger starts the job only when new files appear, with wait and minimum-interval settings; a table update trigger does the same for upstream tables.

Auto Loader ingests JSON and a new column suddenly appears in incoming files
✕ Wrong instinct

The stream ignores the column and keeps running

✓ Correct approach

With cloudFiles.schemaLocation set, the default addNewColumns mode stops the stream once, records the new schema, and continues after restart. Values that do not fit the schema land in _rescued_data instead of being lost.

A team copies job JSON from dev to prod by hand and the environments keep drifting
✕ Wrong instinct

Keep separate databricks.yml files for each environment

✓ Correct approach

Use one Declarative Automation Bundle with dev and prod targets and ${var.name} overrides. Run bundle validate, then bundle deploy -t prod as a service principal; deploy creates resources but does not start them, which needs bundle run.

The job graph shows one task Failed and three later tasks marked Upstream failed
✕ Wrong instinct

Debug the last task in the graph first

✓ Correct approach

Upstream failed means a dependency broke earlier. Investigate the earliest failed task, fix the cause, then use a repair run so only it and its dependants rerun. Retries help transient errors, never code bugs.

Know these cold

  • ▸ Jobs compute is cheaper per DBU than all-purpose; SQL tasks run on SQL warehouses
  • ▸ Serverless notebooks support Python and SQL only; R, Scala and RDD code need classic compute
  • ▸ Auto Loader needs cloudFiles.schemaLocation for schema inference and evolution to work
  • ▸ availableNow processes everything pending, then stops, keeping incremental state between runs
  • ▸ Colon notation like raw:a.b reads JSON strings; dot notation is for STRUCT columns
  • ▸ explode drops null or empty arrays; explode_outer keeps those rows with nulls
  • ▸ Shuffles default to 200 partitions; tables under 10 MB are broadcast automatically
  • ▸ A CHECK constraint rejects the whole write; expect_or_drop keeps loading valid rows
  • ▸ Grant to groups, at schema level, so new tables inherit SELECT automatically
  • ▸ Liquid clustering suits new tables; predictive optimization maintains managed tables only

Can you answer these without checking your notes?

In this scenario: "Files land in a Unity Catalog volume at unpredictable times and should be processed promptly" — what should you do first?
Frequent schedules burn compute on empty runs. A file arrival trigger starts the job only when new files appear, with wait and minimum-interval settings; a table update trigger does the same for upstream tables.
In this scenario: "Auto Loader ingests JSON and a new column suddenly appears in incoming files" — what should you do first?
With cloudFiles.schemaLocation set, the default addNewColumns mode stops the stream once, records the new schema, and continues after restart. Values that do not fit the schema land in _rescued_data instead of being lost.
In this scenario: "A team copies job JSON from dev to prod by hand and the environments keep drifting" — what should you do first?
Use one Declarative Automation Bundle with dev and prod targets and ${var.name} overrides. Run bundle validate, then bundle deploy -t prod as a service principal; deploy creates resources but does not start them, which needs bundle run.

Common Exam Mistakes — What candidates get wrong

Running scheduled production jobs on an all-purpose cluster

All-purpose compute has the highest DBU rate and mixes production with ad hoc work. Jobs compute is created per run at a lower rate, and serverless removes cluster configuration but supports only Python and SQL notebooks, not R, Scala or RDDs.

Expecting a COPY INTO rerun to load files again or duplicate rows

COPY INTO tracks loaded files and skips them, so retries are safe. A corrected file with the same name stays skipped unless the force option is set to true. For millions of continuously arriving files, Auto Loader with checkpoints scales better.

Assuming PySpark union behaves like SQL UNION

DataFrame union keeps duplicates and matches columns by position, so reordered columns silently swap values. Use unionByName to align names and distinct() to deduplicate. In SQL, by contrast, UNION removes duplicates while UNION ALL keeps them.

Leaving cleanup tasks on the default Run if setting

With All succeeded, a downstream cleanup task never runs after an upstream failure; set Run if to All done so it runs regardless. Pass small values between tasks with dbutils.jobs.taskValues.set, and loop with a For each task instead of duplicating tasks.

Thinking DROP TABLE behaves the same for managed and external tables

Dropping a managed table removes its data after the retention window, and UNDROP can restore it within that window. Dropping an external table removes only Unity Catalog metadata while files stay at the path. ALTER TABLE ... SET MANAGED converts external to managed.

Resources to help you pass Databricks Data Engineer Associate on your first attempt

Find out whether your ingestion, job and grant defaults are ready for the associate exam.