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.25.0' 'etlantic-sparkforge==0.25.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
- Plan-only — generate/inspect ETLantic plans from SparkForge IR
(
strict_delta=Falseto warn instead of fail when Delta caps are unknown) - Dual reporting —
adapt_run_result→PipelineRunReport - ETLantic planning — selections/intents via
debug_request_from_sparkforge - Plugin execution —
Profile.spark_engine="pyspark"/ SQL plugins - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file etlantic_sparkforge-0.25.0.tar.gz.
File metadata
- Download URL: etlantic_sparkforge-0.25.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be6be162bd3d50c64995e171abcd616929d63bd53ad206fbe46c31c492443b51
|
|
| MD5 |
12d764b7673385ee46e92f65c57b151d
|
|
| BLAKE2b-256 |
68216fa75ccb9f4342367ec1415cf21d4eb55b25c5af34b8593814b14403ff4e
|
File details
Details for the file etlantic_sparkforge-0.25.0-py3-none-any.whl.
File metadata
- Download URL: etlantic_sparkforge-0.25.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d62e6df0d367d7efc4571ea11bde784ed63ba0ffac30ff5943d34371f01aba8
|
|
| MD5 |
2103448fac6d5fed9b042d02c9727e5a
|
|
| BLAKE2b-256 |
ccad0b5973c173960ceb7479236a66cbeb00e840539a84f611a612821f1639e2
|