๐Ÿš€

Deadline: Late September 2026

Runtime 2.0 becomes the default for new workspaces and environment items in late September 2026. Existing workspaces stay on Runtime 1.3 until you explicitly opt in โ€” but every new workspace created after that date starts on Runtime 2.0 automatically. Microsoft has also flagged an active rollout issue affecting Python/wheel-based Environment items โ€” see the Breaking Change section below before you migrate anything in production.

Six Major Versions, One Runtime

Most Fabric runtime upgrades are incremental โ€” a point release here, a library bump there. Runtime 2.0 is not that. It moves six core components forward simultaneously, several of them across major-version boundaries.

ComponentRuntime 1.3Runtime 2.0
Apache Spark3.54.1
Delta Lake3.24.2
Python3.113.13
Java1121
Scala2.122.13
Operating Systemโ€”Azure Linux 3.0 (Mariner 3.0)
Rโ€”4.5.2
โš ๏ธ

Why This Matters for Planning

Each row in that table would normally justify its own change-management cycle. Together, they mean a Runtime 2.0 migration touches Spark SQL behavior, PySpark library compatibility, JVM garbage collection characteristics, and Delta table protocol versions all at once. Treat this as a platform migration, not a version bump.

Not Default Yet

Existing workspaces stay on Runtime 1.3 until you opt in. Nothing changes for current production workloads unless you explicitly switch.

GA, Production-Ready

Runtime 2.0 is fully supported for production use today โ€” this is not a preview you’re testing at your own risk.

September 2026 Default

New workspaces and environment items switch to Runtime 2.0 by default in late September 2026. Plan validation before that date.

Two Enablement Scopes

Set it workspace-wide, or scope it to a single Environment item so specific notebooks pick it up without affecting everything else.

How to Enable Runtime 2.0

You can enable Runtime 2.0 at the workspace level, which makes it the default for every Spark workload in that workspace, or scope it to a single Environment item, which overrides the workspace default for just the notebooks or Spark job definitions attached to it.

Workspace-Level (applies to everything)

  1. Open Workspace settingsNavigate to your Fabric workspace and select Workspace settings.
  2. Go to Data Engineering/Science โ†’ Spark settingsSelect the Data Engineering/Science tab, then Spark settings.
  3. Open the Environment tabInside Spark settings, select the Environment tab.
  4. Select Runtime version 2.0Under the Runtime version dropdown, choose 2.0 (Spark 4.1, Delta 4.2) and save.
  5. ConfirmRuntime 2.0 is now the default for all Spark workloads in this workspace going forward.

Environment-Level (scoped to specific notebooks)

  1. Create or open an Environment itemThis lets you target Runtime 2.0 at specific notebooks or Spark job definitions without changing the workspace default.
  2. Select Runtime 2.0, save, publishUnder the Runtime dropdown, choose 2.0 (Spark 4.1, Delta 4.2), then Save and Publish.
  3. Attach itUse this Environment item with the specific Notebook or Spark Job Definition you want to run on Runtime 2.0.

Environment-scoped enablement is the safer starting point for production workspaces. It lets you validate Runtime 2.0 against a single pipeline or a low-risk notebook first, without changing behavior for anything else in the workspace, before committing to the workspace-wide default.

Native Execution Engine: The Headline Feature

Runtime 2.0 ships with the Native Execution Engine, a vectorized C++ execution path (built on Apache Gluten and Velox) that runs supported Spark operators directly against lakehouse infrastructure instead of the JVM. When an operator isn’t yet supported natively, execution automatically falls back to standard JVM-based Spark โ€” so there’s no correctness cliff, only a performance one.

Up to 6x Faster

Microsoft’s TPC-DS benchmarks at scale factor 1000 using Delta tables show up to six times faster performance versus open-source Spark.

~83% Compute-Cost Savings

On a fixed-size Fabric cluster, that performance gain translates to roughly 83% lower compute cost for the same workload.

Zero Code Changes

The engine integrates seamlessly โ€” existing Spark code runs unmodified. Unsupported operators fall back to JVM Spark automatically.

Vectorized CSV Parsing

CSV ingestion and query workloads get an accelerated vectorized parser today. Vectorized JSON parsing and Structured Streaming support are planned.

๐Ÿ“Œ

How to Turn It On

Enable the Native Execution Engine at the environment level so every job and notebook attached to that environment automatically inherits the performance gain โ€” no per-notebook configuration needed.

Data Layout Optimization That Ships With It

  • Z-ordering: co-locates related data within Delta table files by specified columns, improving filtered-query performance.
  • Liquid Clustering: a flexible clustering approach that keeps data layout optimized automatically, without manual maintenance jobs.
  • Parallel Delta snapshot loading: the native engine loads Delta table snapshots in parallel, cutting query startup time on large tables.

What’s New in Apache Spark 4.1

Spark 4.0 was the first release in the 4.x line; Spark 4.1, what Runtime 2.0 ships, builds on that foundation. The headline changes split across three areas.

Spark SQL

  • VARIANT data type support
  • SQL user-defined functions
  • Session variables
  • Pipe syntax
  • String collation support

PySpark

  • Native plotting API
  • New Python Data Source API
  • Python UDTF support
  • Unified profiling for PySpark UDFs

Structured Streaming

  • Arbitrary State API v2: more flexible state management for stateful streaming jobs.
  • State Data Source: makes debugging streaming state substantially easier.
โš ๏ธ

Deprecation Notice

SparkR is deprecated in Spark 4.x and might be removed in a future version. If any workloads still depend on SparkR, plan a migration path to PySpark or Scala before that removal lands.

Delta Lake 4.2 and Interoperability Limits

Delta Lake 4.2 continues the project’s push toward format interoperability, easier authoring, and better performance. It rolls up the changes introduced across Delta Lake 3.3, 4.0, and 4.1 as well.

๐Ÿšจ

Experimental Outside Spark Experiences

Delta Lake 4.x-specific features are experimental and only work inside Spark experiences โ€” notebooks and Spark job definitions. If the same Delta tables need to be consumed by other Fabric workloads (the SQL analytics endpoint, Warehouse, Power BI Direct Lake), do not enable those 4.x-specific features yet. Check Delta Lake table format interoperability before designing around them.

This is the detail most migration writeups skip. Upgrading the runtime doesn’t mean every downstream Fabric engine understands every new Delta protocol feature yet. Test cross-workload reads โ€” not just Spark reads โ€” before relying on Delta Lake 4.2 features in a shared lakehouse.

Compute Management: Resource Profiles & Custom Live Pools

Resource Profiles

Predefined resource allocations for Spark sessions, matched to workload requirements โ€” a straightforward way to control cost without hand-tuning executor settings per job.

Custom Live Pools Preview

Dedicated, pre-warmed Spark pools that reduce session startup time. Available in preview for Runtime 2.0 workloads โ€” useful for interactive notebook development where cold-start latency hurts iteration speed.

The Breaking Change Most Teams Will Hit

Microsoft is actively rolling out an update to Runtime 2.0 that introduces a breaking change for anyone using Environment items with Python and wheel libraries. The Python 3.13 upgrade is the root cause.

๐Ÿ”ด

What You’ll See

  • A Spark deprecation warning referencing setting -deprecation or -replay -deprecation, sourced from SparkCoreService, or
  • A LibraryManagementError stating that an upgrade to the base Spark Python environment has been detected and the environment needs to be republished

The Fix

  1. Remove all librariesOpen the affected Environment item and remove every library, including wheel packages.
  2. PublishPublish the Environment with no libraries attached.
  3. Re-add all librariesAdd the same libraries back to the Environment item.
  4. Publish againPublishing a second time rebuilds the environment against the updated Python 3.13 runtime and resolves the error.

This isn’t a one-time migration step โ€” it’s the required rebuild pattern any time the underlying Spark Python environment shifts under a published Environment item. Bookmark this sequence; it’s worth keeping as a runbook entry, not just a one-off fix.

Migration Checklist

A practical order of operations for validating Runtime 2.0 before the September 2026 default switch.

StepWhat to CheckWhy
1. Inventory environmentsList every Environment item using Python/wheel librariesThese are guaranteed to need the republish fix above
2. Scope-test firstEnable Runtime 2.0 on one Environment item, not the whole workspaceLimits blast radius while validating behavior
3. Run the SQL migration guidesCross-check Spark SQL, Structured Streaming, PySpark, and MLlib migration guides against your codebaseCatches behavioral differences beyond the Python library issue
4. Test cross-workload Delta readsConfirm SQL endpoint, Warehouse, and Power BI still read your Delta tables correctlyDelta Lake 4.x features are experimental outside Spark experiences
5. Enable the Native Execution EngineTurn it on at the environment level and compare job runtimesThis is where most of the cost and speed benefit comes from
6. Set a workspace-wide dateDecide your own cutover date ahead of the September 2026 defaultAvoids being forced into an unplanned migration on new workspaces
โœ…

VS Code Support

The VS Code extension for Fabric Spark supports Runtime 2.0 for both notebook and Spark job definition development, so local development workflows don’t need a separate migration path.

Frequently Asked Questions

What is Fabric Runtime 2.0?
Fabric Runtime 2.0 is Microsoft Fabric’s generally available Apache Spark runtime built on Spark 4.1, Delta Lake 4.2, Python 3.13, Java 21, Scala 2.13, R 4.5.2, and Azure Linux 3.0. It’s the successor to Runtime 1.3 (Spark 3.5) and includes the Native Execution Engine, which can run Spark queries up to six times faster on TPC-DS benchmarks with no code changes.
Is Fabric Runtime 2.0 the default runtime yet?
No. Runtime 2.0 is GA and production-ready but not yet the default. Existing workspaces stay on Runtime 1.3 until you explicitly opt in. Microsoft plans to make Runtime 2.0 the default for new workspaces and environment items in late September 2026.
How do I enable Runtime 2.0 in Fabric?
Enable it at the workspace level (Workspace settings โ†’ Data Engineering/Science โ†’ Spark settings โ†’ Environment tab โ†’ Runtime version โ†’ select 2.0) to make it the default for the whole workspace, or create a new Environment item with Runtime 2.0 selected to scope it to specific notebooks or Spark job definitions, which overrides the workspace default.
What breaking change should I know about before migrating?
Customers using Environment items with Python and wheel libraries can hit a breaking change from the Python 3.13 upgrade, surfacing as a Spark deprecation warning or a LibraryManagementError referencing an upgrade to the base Spark Python environment. The fix: remove all libraries from the Environment, publish, re-add all libraries, and publish again so the environment rebuilds against the updated Python runtime.
How much faster is the Native Execution Engine?
Microsoft’s published benchmarks show up to six times faster performance versus open-source Spark on TPC-DS at scale factor 1000 using Delta tables, translating to roughly 83% compute-cost savings on a fixed-size Fabric cluster. Results vary by workload; operators not yet supported by the native path automatically fall back to JVM-based Spark.
Can I use Delta Lake 4.2 features across all Fabric workloads?
Not yet for everything. Delta Lake 4.x-specific features are experimental and currently only work inside Spark experiences โ€” notebooks and Spark job definitions. If the same Delta tables need to be read by other Fabric workloads such as the SQL analytics endpoint or Warehouse, avoid enabling those experimental features until broader interoperability is confirmed.
What are Custom Live Pools in Runtime 2.0?
Custom live pools are a preview compute management feature in Runtime 2.0 that let you create dedicated, pre-warmed Spark pools to reduce session startup time, alongside resource profiles for predefined resource allocations matched to workload requirements.
Should I migrate to Runtime 2.0 now or wait?
Runtime 2.0 is GA and supported for production, so validating it now is reasonable, especially since it becomes the default for new workspaces and environment items in late September 2026. Teams with complex Python/wheel-based environments or cross-workload Delta 4.x dependencies should test in a non-production workspace first because of the known Python re-publish requirement and the experimental status of some Delta Lake 4.2 features outside Spark experiences.

โš ๏ธ Accuracy Disclaimer

This guide is verified against Microsoft Learn โ€” Runtime 2.0 in Fabric (last updated August 17, 2026) and the official Fabric Runtime 2.0 GA announcement. Runtime rollout status, default-runtime timelines, and known issues change frequently during active rollouts. Always verify current status in Microsoft Learn before planning a production migration. UIG Data Lab is an independent publication, not affiliated with or endorsed by Microsoft Corporation.

AJ
A.J. Data Engineering Researcher & Technical Writer ยท UIG Data Lab All articles โ†’

A.J. researches and writes about data engineering, analytics architecture, Microsoft Fabric, and modern cloud data platforms. Coverage spans Microsoft Fabric, Power BI, Azure Data Engineering, Databricks, Snowflake, Apache Spark, dbt, Apache Airflow, and modern cloud data infrastructure. The focus is practitioner-level content that helps data professionals understand platform capabilities, evaluate technology decisions, optimize costs, and implement practical solutions using official documentation, product updates, community insights, and industry best practices. His writing covers real decisions from real deployments โ€” not documentation rewrites.

Microsoft Fabric Apache Spark Delta Lake Python Data Engineering OneLake PySpark Data Architecture