Open Source & Case StudiesCAPITAL ONE OPEN SOURCE · SPARK CONNECT
UPSTREAM ADOPTED · PR #552

Spark Connect Compatibility Architecture & Upstream Adoption for Capital One’s DataComPy

An open-source architecture contribution to Capital One’s DataComPy project that diagnosed a process-global assumption defect in Spark Connect sessions. Resolved via object-level runtime dispatch, credited and adopted upstream by Capital One in PR #552.

Role

  • Compatibility architecture
  • Root cause engineering
  • Apache Spark & PySpark
  • Python implementation
  • Upstream PR adoption

Category

Data Engineering

Engineering discipline

UPSTREAM ADOPTED · PR #552

Upstream PR:Capital One #552 · open, mergeable
Original PR:#548 · root cause & dispatch
Maintainer credit:@patrickswedish credited in PR #552
Capital One DataComPy Spark Connect architecture and upstream adoption

Patrick Ribbsaeter · Independent open-source contribution

Engineering objective

System challenge

When SparkSQLCompare received an already-created Connect session, expression selection relied on process-global Spark state (SPARK_CONNECT_MODE_ENABLED) rather than the actual DataFrame or Column object. As a result, classic Spark expressions could be constructed against Spark Connect DataFrames, causing runtime failures across remote cluster and notebook environments.

Constraints

Working within real limits

  • Preserve existing Spark Classic behavior while adding complete Spark Connect compatibility
  • Avoid duplicating comparator logic across two runtime-specific implementations
  • Dispatch dynamically from the actual DataFrame or Column object type rather than trusting global session state
  • Cover array, boolean, numeric, and string comparison paths consistently
  • Validate upstream maintainer adoption with full regression coverage and green CI

Architecture

System design

Inspect actual object type
Classic object
Build expressions
Primary flow
Restricted path
External dependency
Data path

Approach

How it was built

  1. 01

    Diagnosed root cause: SPARK_CONNECT_MODE_ENABLED assumption fails when Connect sessions originate outside the library.

  2. 02

    Engineered runtime-aware dispatch (PR #548) that resolves Spark functions and Window implementations directly from the target DataFrame or Column.

  3. 03

    Replaced direct classic-function imports throughout SparkSQLCompare with object-level runtime dispatch.

  4. 04

    Unified compatibility boundaries across array, boolean, numeric, and string comparator implementations.

  5. 05

    Capital One maintainers integrated the object-dispatch approach into upstream PR #552, explicitly crediting @patrickswedish / #548 for the design and root cause diagnosis.

  6. 06

    Capital One extended the PR with comprehensive regression coverage, Connect validation, and green CI across distributed test matrices.

Workflow

Implementation flow

Receive DataFrame or Column
Identify Spark runtime from object
Select matching functions and Window
Build shared comparison expression
Validate Classic and Connect behavior
Upstream adoption in Capital One PR #552

Technical validation

Implementation evidence

Observable engineering evidence. Discipline: UPSTREAM ADOPTED · PR #552

Upstream PR

Capital One #552 · open, mergeable

Original PR

#548 · root cause & dispatch

Maintainer credit

@patrickswedish credited in PR #552

Upstream CI

100% checks passing

Comparator families

4 covered

Spark runtimes

Classic + Connect

Public evidence

Review the upstream contribution

Outcome

What was delivered

  • Capital One upstream PR #552 adopted the runtime object dispatch architecture, explicitly crediting @patrickswedish / #548

  • Root cause of process-global Spark Connect defect diagnosed and resolved

  • Spark Classic and Spark Connect compatibility unified through one shared runtime-dispatch boundary

  • Array, boolean, numeric, and string comparator paths updated consistently

  • 100% passing CI on Capital One upstream repository with full regression coverage

  • Enterprise-grade reliability established for banking and FinTech distributed data reconciliation

Technologies

Stack and tools

PythonApache SparkSpark ConnectPySparkCapital One DataComPypytestRuntime dispatchDistributed SystemsBanking TechnologyOpen-source engineering

Next engineering system

VERCEL AI SDK · OPEN SOURCE

Vercel AI SDK: Gemini Error Details Preserved

Have an ambitious AI system to build?

Let’s build something serious.

I work across AI architecture, product engineering, private inference, automation, SaaS infrastructure, and production hardening.