Spark DataSource backed by a DataFusion TableProvider over ADBC
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Veraltet
- Bereich
- backend, data-engineering, distributed-systems
Rechercherichtung
Beginne mit der in #111 referenzierten Implementierung und vergleiche sie anschließend mit dem in diesem Issue angegebenen Umfang: adbc-datafusion DataSourceV2, Pushdowns, partitionierte Lesevorgänge, Executor Connection Pooling und PySpark-Abdeckung. Führe die im Issue erwähnte End-to-End-Abdeckung aus und überprüfe, dass jede aufgeführte Funktionalität enthalten ist und funktioniert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Is your feature request related to a problem or challenge?
Spark users want to read data from a DataFusion TableProvider as a native Spark DataSourceV2. Today there is no first-class path; options are either a bespoke per-operation JNI surface (more native surface to maintain) or copying data out of process.
Describe the solution you'd like
A Spark DataSourceV2 connector that places the native boundary at a standard ADBC driver. Spark talks to the upstream arrow-adbc Java driver manager (adbc-core + adbc-driver-jni), which loads a native DataFusion ADBC cdylib and returns arrow-java ArrowReaders consumed zero-copy as ArrowColumnVectors on the cluster-provided Arrow. This reuses the upstream ADBC bindings rather than reproducing them.
Scope:
adbc-datafusionformat registered as aDataSourceV2; schema probed on the driver.- Projection / filter / limit pushdown via Substrait, with a SQL fallback.
- Multi-partition reads (
executePartitioned/readPartition) and atarget_partitionsoption. - Per-executor connection pool to amortize driver/database setup across task slots.
- An example DataFusion ADBC driver cdylib plus end-to-end (PySpark) coverage.
Describe alternatives you've considered
A plain-C scan ABI + hand-written JNI shim (discussed on #103 / #104). The ADBC approach reuses standard, separately-reviewed bindings and a stable driver contract instead.
Additional context
Implemented in #111.
- Vorherrschende Sprache
- Java
- Sterne
- 32
- Forks
- 12
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/datafusion-java
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
apache/datafusion-java#116 ·
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 42/100
apache/datafusion-java#96 ·
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 38/100
apache/datafusion-java#95 ·
-
Create first release Offenenhancement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
apache/datafusion-java#86 · 3 Kommentare ·
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 45/100
apache/datafusion-java#68 ·
Alle Issues in apache/datafusion-java
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
elastic/gradle-plugins#157 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
cryptomator/hub#497 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
johanhaleby/occurrent#1120 ·