[AutoSparkUT] Migrate ten Spark SQL suites [fast-ut] [reduced-it] - #15456
[AutoSparkUT] Migrate ten Spark SQL suites [fast-ut] [reduced-it]#15456wjxiz1992 wants to merge 3 commits into
Conversation
Signed-off-by: Allen Xu <allxu@nvidia.com>
|
build |
Greptile SummaryAdds ten Spark 3.3 RAPIDS SQL suite wrappers and registers them for execution.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (3): Last reviewed commit: "test: include exception types in insert ..." | Re-trigger Greptile |
There was a problem hiding this comment.
🟡 Not ready to approve
The new RapidsInsertSuite uses exception-message aggregation that can omit exception type names, making the added FileAlreadyExistsException assertion brittle.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.
Pull request overview
Migrates ten Apache Spark 3.3 SQL test suites into the cudf-spark RAPIDS test harness by adding minimal wrapper suites (mixing in RapidsSQLTestsTrait) and registering them in RapidsTestSettings, including a few RAPIDS-aware replacement tests and explicit exclusions for CPU-private assertions.
Changes:
- Register 10 newly wrapped Spark SQL suites in
RapidsTestSettings, with targeted exclusions and adjusted-test annotations. - Add wrapper suite classes for Spark 3.3 (
spark330) that extend upstream Spark suites and applyRapidsSQLTestsTrait. - Add RAPIDS-aware replacement tests for select
InsertSuiteandDataSourceV2Suitecases where CPU-only assertions were previously failing.
File summaries
| File | Description |
|---|---|
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/utils/RapidsTestSettings.scala | Registers the 10 migrated suites and configures exclusions/adjusted-test reasons. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsDataFrameReaderWriterSuite.scala | Wrapper suite enabling RAPIDS trait for Spark’s DataFrameReaderWriterSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsInsertSuite.scala | Wrapper + RAPIDS-aware replacement tests for ANSI overflow and file-exists failure cases. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsBucketedReadWithoutHiveSupportSuite.scala | Wrapper suite for Spark bucketing tests, with follow-up exclusions tracked in settings. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsInMemoryColumnarQuerySuite.scala | Wrapper suite for Spark cache/columnar query tests, with follow-up exclusions tracked in settings. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsPathFilterSuite.scala | Wrapper suite enabling RAPIDS trait for Spark’s PathFilterSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsDataSourceV2Suite.scala | Wrapper + RAPIDS-aware replacement test using ShuffleExchangeLike for plan assertions. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsJsonParsingOptionsSuite.scala | Wrapper suite enabling RAPIDS trait for Spark’s JsonParsingOptionsSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsPartitionedWriteSuite.scala | Wrapper suite enabling RAPIDS trait for Spark’s PartitionedWriteSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsV1WriteFallbackSuite.scala | Wrapper suite enabling RAPIDS trait for Spark’s V1WriteFallbackSuite. |
| tests/src/test/spark330/scala/org/apache/spark/sql/rapids/suites/RapidsGlobalTempViewSuite.scala | Wrapper suite enabling RAPIDS trait for Spark’s GlobalTempViewSuite. |
Review details
- Files reviewed: 11/11 changed files
- Comments generated: 1
- Review effort level: Low
We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.
| private def exceptionMessages(error: Throwable): String = { | ||
| val messages = new StringBuilder | ||
| var current = error | ||
| while (current != null) { | ||
| messages.append(Option(current.getMessage).getOrElse("")) | ||
| messages.append('\n') | ||
| current = current.getCause | ||
| } | ||
| messages.toString() | ||
| } |
Signed-off-by: Allen Xu <allxu@nvidia.com>
|
build |
Signed-off-by: Allen Xu <allxu@nvidia.com>
|
build |
JaCoCo sql-plugin line coverage: +78 lines (+80 measured, excluding the recurring
MemoryCheckerImpl +2local GPU initialization artifact; clean Spark 330 exec vs shim 350 nightly b22 anchor classfiles)Closes #15452
Summary
Migrate ten eligible Spark 3.3 SQL suites in one PR using minimal RAPIDS inheritance:
DataFrameReaderWriterSuiteInsertSuiteBucketedReadWithoutHiveSupportSuiteInMemoryColumnarQuerySuitePathFilterSuiteDataSourceV2SuiteJsonParsingOptionsSuitePartitionedWriteSuiteV1WriteFallbackSuiteGlobalTempViewSuiteAll wrappers use
RapidsSQLTestsTraitand are registered inRapidsTestSettings.Spark v3.3.0 traceability
Spark source commit:
f74867bddfbcdd4d08076db36851e88b15e66556(v3.3.0). Inherited test names remain unchanged; replacement names use theRapids -prefix at runtime.RapidsDataFrameReaderWriterSuiteDataFrameReaderWriterSuiteRapidsInsertSuiteInsertSuiteRapidsBucketedReadWithoutHiveSupportSuiteBucketedReadWithoutHiveSupportSuite/BucketedReadSuiteRapidsInMemoryColumnarQuerySuiteInMemoryColumnarQuerySuiteRapidsPathFilterSuitePathFilterSuiteRapidsDataSourceV2SuiteDataSourceV2SuiteRapidsJsonParsingOptionsSuiteJsonParsingOptionsSuiteRapidsPartitionedWriteSuitePartitionedWriteSuiteRapidsV1WriteFallbackSuiteV1WriteFallbackSuiteRapidsGlobalTempViewSuiteGlobalTempViewSuiteTotal original tests: 250. Total effective tests executed: 225.
Remediation and deferred cases
The initial run had 29 failures concentrated in CPU-private assertions.
InsertSuiteexception assertions with RAPIDS-aware tests that preserve the ANSI overflow/no-partial-write andFileAlreadyExistsExceptioncontracts.DataSourceV2Suitepartitioning reporting with a plan assertion againstShuffleExchangeLike, valid for CPU and GPU exchanges.The 31 ignored tests in the final summary are 2 pre-existing upstream ignores plus 29 explicitly registered migration exclusions. Four excluded originals have passing RAPIDS-aware replacements; 25 require follow-up remediation.
Validation
Spark 3.3 combined GPU Maven package run:
The same clean 225-test run produced the JaCoCo exec used for the coverage delta.
Coverage measurement
Nightly baseline: shim 350 b22, anchor commit
3421ec13231cc246ca2b4da5d0a2a391f0b87763.After excluding the recurring
MemoryCheckerImpl +2local GPU initialization artifact, the PR contribution is +78 lines.Documentation
Testing
(Please provide the names of the existing tests in the PR description.)
Performance