[AutoSparkUT] Migrate ten Spark SQL suites [fast-ut] [reduced-it] - #15466
Open
wjxiz1992 wants to merge 3 commits into
Open
[AutoSparkUT] Migrate ten Spark SQL suites [fast-ut] [reduced-it]#15466wjxiz1992 wants to merge 3 commits into
wjxiz1992 wants to merge 3 commits into
Conversation
Signed-off-by: Allen Xu <allxu@nvidia.com>
Contributor
Greptile SummaryAdds Spark 3.3 RAPIDS wrappers for ten upstream SQL suites.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (3): Last reviewed commit: "test: link ORC exclusions to dedicated i..." | Re-trigger Greptile |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR expands the Spark 3.3 migrated-unit-test matrix by adding RAPIDS wrapper suites (via RapidsSQLTestsTrait) for ten additional Spark SQL test suites and registering them in RapidsTestSettings, including targeted exclusions for known ORC gaps and a RAPIDS-aware replacement for one Parquet V2→V1 fallback plan assertion.
Changes:
- Register 10 additional Spark 3.3 SQL suites in
RapidsTestSettings, including explicit known-issue exclusions for ORC V1/V2 and an adjusted UT exclusion for the original “Fallback Parquet V2 to V1”. - Add minimal Spark 3.3 wrapper suites that inherit the upstream Spark suites while using RAPIDS test gating (
RapidsSQLTestsTrait). - Introduce a RAPIDS-specific replacement test for Parquet V2→V1 fallback that asserts
GpuFileSourceScanExecwhile preserving the original command/result assertions.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/utils/RapidsTestSettings.scala | Enables the migrated suites and wires in known-issue/adjusted-test exclusions. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsWriteDistributionAndOrderingSuite.scala | Adds Spark 3.3 wrapper for WriteDistributionAndOrderingSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsOrcSourceSuite.scala | Adds Spark 3.3 wrappers for ORC V1/V2 source suites. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsKeyGroupedPartitioningSuite.scala | Adds Spark 3.3 wrapper for KeyGroupedPartitioningSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsDataSourceV2DataFrameSuite.scala | Adds Spark 3.3 wrapper for DataSourceV2DataFrameSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsBucketedWriteSuite.scala | Adds Spark 3.3 wrapper for BucketedWriteWithoutHiveSupportSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsCreateTableAsSelectSuite.scala | Adds Spark 3.3 wrapper for CreateTableAsSelectSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsV1ReadFallbackSuite.scala | Adds Spark 3.3 wrappers for both V1ReadFallbackWithDataFrameReaderSuite and V1ReadFallbackWithCatalogSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsFileDataSourceV2FallBackSuite.scala | Adds RAPIDS replacement test for Parquet V2→V1 fallback that asserts GPU scan node. |
Comment on lines
+59
to
+63
| val inputData = spark.range(10) | ||
| inputData.write.format(format).save(path.getCanonicalPath) | ||
| sparkContext.listenerBus.waitUntilEmpty() | ||
| assert(commands.length == 1) | ||
| assert(commands.head._1 == "command") |
This was referenced Jul 31, 2026
Signed-off-by: Allen Xu <allxu@nvidia.com>
Collaborator
Author
|
build |
Signed-off-by: Allen Xu <allxu@nvidia.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
JaCoCo sql-plugin line coverage: not measurable locally — Spark 3.3-only suites are not selected by the mandatory shim 350 coverage rig
Closes #15465
Summary
Migrate ten eligible Spark 3.3 SQL suites in one PR using minimal RAPIDS inheritance:
WriteDistributionAndOrderingSuiteOrcSourceV1SuiteOrcSourceV2SuiteKeyGroupedPartitioningSuiteDataSourceV2DataFrameSuiteBucketedWriteWithoutHiveSupportSuiteCreateTableAsSelectSuiteFileDataSourceV2FallBackSuiteV1ReadFallbackWithDataFrameReaderSuiteV1ReadFallbackWithCatalogSuiteAll wrappers use
RapidsSQLTestsTraitand are registered inRapidsTestSettings.Spark source traceability
The current Spark
masterlinks were verified after syncing to256d453a0074a8dc7b58e7d548653e52a87d98d4. The pinned compatibility source is Spark v3.3.0 commitf74867bddfbcdd4d08076db36851e88b15e66556.RapidsWriteDistributionAndOrderingSuiteWriteDistributionAndOrderingSuiteRapidsOrcSourceV1SuiteOrcSourceV1Suite/OrcSourceSuiteRapidsOrcSourceV2SuiteOrcSourceV2Suite/OrcSourceSuiteRapidsKeyGroupedPartitioningSuiteKeyGroupedPartitioningSuiteRapidsDataSourceV2DataFrameSuiteDataSourceV2DataFrameSuiteRapidsBucketedWriteWithoutHiveSupportSuiteBucketedWriteWithoutHiveSupportSuite/BucketedWriteSuiteRapidsCreateTableAsSelectSuiteCreateTableAsSelectSuiteRapidsFileDataSourceV2FallBackSuiteFileDataSourceV2FallBackSuiteRapidsV1ReadFallbackWithDataFrameReaderSuiteV1ReadFallbackWithDataFrameReaderSuite/V1ReadFallbackSuiteRapidsV1ReadFallbackWithCatalogSuiteV1ReadFallbackWithCatalogSuite/V1ReadFallbackSuiteTotal original tests: 233. Total effective tests executed: 217.
Inherited test names remain unchanged. The one replaced test maps as follows:
Rapids - Fallback Parquet V2 to V1→ SparkFallback Parquet V2 to V1: master L158-L200, Spark 3.3.0 L155-L194.Remediation and deferred cases
The initial GPU run executed 231 tests and found 15 failures:
FileSourceScanExecassertion inFallback Parquet V2 to V1withGpuFileSourceScanExec, while preserving its listener, V1 command,ParquetFileFormat, and result assertions.The 17 ignored tests in the final summary are 14 ORC migration exclusions, one original test with a passing RAPIDS-aware replacement, and two inherited Spark ignores.
Each unresolved ORC contract now has a dedicated root-cause issue; the batch
migration issue is not used as exclusion evidence:
Propagate Hadoop configs from orc options to underlying file systemWrite Spark version into ORC file metadataSPARK-31238: compatibility with Spark 2.4 in reading datesSPARK-31284: compatibility with Spark 2.4 in reading timestampsSPARK-31284, SPARK-31423: rebasing timestamps in writeEnforce direct encoding column-wise selectivelySPARK-36663: ... a column name which consists of only numbersValidation
Focused remediation runs:
Final combined Spark 3.3 GPU Maven package run:
Full repository ScalaStyle:
Coverage measurement
The mandatory KPI baseline is shim 350 nightly b22 at anchor
3421ec13231cc246ca2b4da5d0a2a391f0b87763. These wrappers are deliberately confined to thespark330source set and produceExpected test count is: 0in the matching shim 350 rig. A Spark 330 JaCoCo exec cannot be merged against shim 350 classfiles without invalid probe mappings, so no line delta is reported.Scope markers
This PR changes only
tests/src/test/spark330wrappers and registration. It does not touch production, shared, or Databricks-specific code, and migration-UT PRs do not use the[databricks]title marker.Documentation
Testing
(Please provide the names of the existing tests in the PR description.)
Performance