Skip to main content

SparkForge-to-ETLantic migration adapter (medallion facade mapping).

Project description

etlantic-sparkforge

SparkForge → ETLantic migration adapter for ETLantic 0.20.

SparkForge remains the medallion-facing facade (bronze / silver / gold). This package maps those conventions onto ordinary ETLantic Extract / Step / Load, Profile, RunSelection / RunIntent, and PipelineRunReport surfaces. ETLantic core never gains medallion types.

Install

pip install 'etlantic==0.24.0' 'etlantic-sparkforge==0.24.0'
# or
pip install 'etlantic[sparkforge]'

The shipped adapter is IR-only: feed SparkForgePipelineSpec (JSON/YAML fixtures or hand-built dataclasses). There is no live pipeline_builder / SparkForge Python API bridge in this release.

The adapter is registered explicitly by importing etlantic_sparkforge and calling its conversion helpers. The adapted result supplies an ordinary ETLantic pipeline and profile; select execution plugins such as Profile.spark_engine="pyspark" separately. Production profiles must allowlist every trusted execution plugin.

Quick start (IR → Pipeline)

from etlantic_sparkforge import (
    SparkForgePipelineSpec,
    SparkForgeStepSpec,
    StepKind,
    LayerKind,
    adapt_pipeline,
    debug_request_from_sparkforge,
    enrich_plan,
)
from etlantic.plan import plan_pipeline

spec = SparkForgePipelineSpec(
    name="ecommerce",
    schema="demo",
    steps=(
        SparkForgeStepSpec(
            name="orders",
            kind=StepKind.BRONZE_RULES,
            layer=LayerKind.BRONZE,
            table_name="bronze_orders",
        ),
        SparkForgeStepSpec(
            name="clean_orders",
            kind=StepKind.SILVER_TRANSFORM,
            layer=LayerKind.SILVER,
            source="orders",
            table_name="silver_orders",
            write_mode="overwrite",
        ),
    ),
)
adapted = adapt_pipeline(spec)
adapted.pipeline_cls.validate(profile=adapted.profile)
plan = enrich_plan(
    plan_pipeline(adapted.pipeline_cls, profile=adapted.profile),
    adapted,
)
request = debug_request_from_sparkforge(mode="incremental", skip_writes=True)

Progressive engine deprecation path

  1. Plan-only — generate/inspect ETLantic plans from SparkForge IR (strict_delta=False to warn instead of fail when Delta caps are unknown)
  2. Dual reportingadapt_run_resultPipelineRunReport
  3. ETLantic planning — selections/intents via debug_request_from_sparkforge
  4. Plugin executionProfile.spark_engine="pyspark" / SQL plugins
  5. Facade — SparkForge keeps medallion builder; retire duplicated engines

transform_ref / bronze rules emit PMSF411 warnings: the adapter builds passthrough transforms for planning parity; it does not execute SparkForge callables. Write intents (including MERGE) are attached via enrich_plan for orchestration; the local runtime still gates materialization with RunRequest.no_write.

See docs/11_DEVELOPMENT/MIGRATION_0_9_TO_0_10.md.

Boundary

Concern Owner
bronze / silver / gold APIs SparkForge
portable graph, plan, reports ETLantic
mapping + parity fixtures etlantic-sparkforge

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

etlantic_sparkforge-0.24.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

etlantic_sparkforge-0.24.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file etlantic_sparkforge-0.24.0.tar.gz.

File metadata

  • Download URL: etlantic_sparkforge-0.24.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for etlantic_sparkforge-0.24.0.tar.gz
Algorithm Hash digest
SHA256 151ae1b6a6e5a286a86dfc91eb36a93512f6621b9aa8d09dd20280c0c6ad26c0
MD5 ceacf8a5d0aec1446e4472665bdf5ef6
BLAKE2b-256 f2485d75cf6ad166399707d1266cac49c088cccdf5bff5273977f493c86425f4

See more details on using hashes here.

File details

Details for the file etlantic_sparkforge-0.24.0-py3-none-any.whl.

File metadata

  • Download URL: etlantic_sparkforge-0.24.0-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for etlantic_sparkforge-0.24.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e46553ccecbf65e9cfdb0c6887ad8f7bfee8bd85a7a7182a8ac9a00e9e6434d6
MD5 31a5c2e67bf3f621a9ec52675cf6683e
BLAKE2b-256 9a44f744fccdac0e25706269ae8445ce1025efff85cca69f58c007d4f990f3bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page