Move independent Iceberg helpers to root-safe module [reduced-it] - #15841
Move independent Iceberg helpers to root-safe module [reduced-it]#15841gerashegalov wants to merge 6 commits into
Conversation
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Greptile SummaryThe PR relocates self-contained Iceberg helpers into the root-safe
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart LR
Versioned[Versioned Iceberg module]
Common[Root-safe iceberg-common]
Dist[Distribution root]
Runtime[Iceberg runtime consumers]
Versioned -->|depends on| Common
Common -->|promoted once| Dist
Versioned --> Runtime
Dist --> Runtime
Reviews (5): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile |
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
|
build |
1 similar comment
|
build |
NvTimLiu
left a comment
There was a problem hiding this comment.
LGTM from CICD point of view
…independent-helpers Signed-off-by: Gera Shegalov <gshegalov@nvidia.com> # Conflicts: # dist/unshimmed-common-from-single-shim.txt
| new JHashMap[Integer, Any](), | ||
| expectedSchema, | ||
| GpuIcebergParquetReader.withNativeRowIndex(shadedSchema), | ||
| GpuIcebergParquetReaderUtils.withNativeRowIndex(shadedSchema), |
There was a problem hiding this comment.
[P1] Update the remaining withNativeRowIndex callers
This PR removes object GpuIcebergParquetReader, but lines 1181 and 1218 in this file still call GpuIcebergParquetReader.withNativeRowIndex(...). A clean Spark 3.5 test compile therefore fails with not found: value GpuIcebergParquetReader. Please change those two callers to GpuIcebergParquetReaderUtils.withNativeRowIndex(...) as well.
…independent-helpers Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
|
build |
…independent-helpers Signed-off-by: Gera Shegalov <gshegalov@nvidia.com> # Conflicts: # dist/unshimmed-common-from-single-shim.txt
Related to #15821.
Supersedes #15826 with an independent, non-stacked change.
Description
Move a self-contained set of Apache Iceberg helpers into the root-safe
iceberg-commonmodule without depending on the other pending Icebergunshimming pull requests.
The root-safe set includes:
Keep implementation-dependent delete-filter helpers in the versioned Iceberg
module by folding them into the existing
GpuDeleteFileInfocompanion. Removethe six corresponding special root-layout allowlist entries and add the direct
spark-rapids-jnidependency required by the deletion-vector container.The catalog and table wrappers remain in the versioned Iceberg module because
their Spark catalog interfaces are not source-compatible across all supported
Spark versions.
Packages, public class names, algorithms, data flow, and runtime behavior are
unchanged. This changes source-module ownership and class placement only.
This pull request was prepared with AI assistance and reviewed by the author
before publication. It also received an independent read-only code review.
TODO before marking ready for review:
extraClassPathIceberg smoke coverage inpre-merge CI.
Validation:
iceberg-commonand the Iceberg consumer for Spark 3.5.0,Iceberg 1.6, and Scala 2.12.
iceberg-commonand the Iceberg consumer for Spark 4.1.1,Iceberg 1.11, and Scala 2.13.
iceberg-commonfor Spark 3.3.1/Scala 2.12, Spark 4.0.0/Scala 2.13,and Spark 4.2.0/Scala 2.13 after keeping the catalog wrappers versioned.
GpuDeleteFilterSuite,GpuPostProcessorSuite,IcebergDeletionVectorSuite, andRapidsSparkTableSuite: 57 tests passed.and absent from both versioned Iceberg jars.
./build/make-scala-version-build-files.sh 2.13.git diff --check.A broader local reactor build stopped before reaching Iceberg because unchanged
SQL-plugin sources use a cuDF API marked deprecated by the locally resolved
dependency under warnings-as-errors. The focused changed modules and tests
completed successfully.
Performance: Not required because this only relocates helpers or changes their
owning companion. It does not add runtime operations, allocations, passes, or
synchronization.
Checklists
Documentation
Testing
(
GpuDeleteFilterSuite,GpuPostProcessorSuite,IcebergDeletionVectorSuite, andRapidsSparkTableSuite.)Performance