Repository navigation
Enable spark.comet.exec.localTableScan.enabled when running Spark SQL tests #4347
Description
Related to #2723.
A lot of Spark SQL tests don't put their source data in a format that Comet accelerates reading from. Comet generally wants data in Parquet or Iceberg. A number of Spark SQL suites (e.g., UDFSuite) don't write to Parquet so their scans are just LocalTableScanExec, and Comet is not exercising UDF compatibility because the scan underneath isn't native. We can either do what #2723 suggests and enable converting to columnar, or try enabling LocalTableScanExec now that we have #2735. @andygrove tried the former in #2714, but the logs are gone now so I'm not sure how ugly it was. Starting with LocalTableScanExec might be a smaller blast radius?
Tracking
Enabling spark.comet.exec.localTableScan.enabled by default is being tried in #4393 (draft) and #6780 (draft, run against Spark 4.1). Remaining work, by area:
Test expectations that assume Spark nodes (skip list or per-test config)
- test: Spark SQL tests that inspect the physical plan fail when LocalTableScanExec is native #6795 Spark SQL tests that inspect the physical plan fail once
LocalTableScanExecis a Comet operator
Known Comet gaps newly exposed by the change
- collect_set / collect_list return elements in a different order than Spark #6796
collect_set/collect_listelement order differs from Spark - Math functions differ from Spark in the last digits #6797 Math function results differ from Spark in the last digits (
asinh,cosh,tan,cot,atanh,cbrt,exp,pow,atan2) - Native errors surface as SparkException where Spark raises a specific error class #6798 Native errors surface as
SparkExceptionwhere Spark raises a specific error class (to_time,to_binary,array_insert,mapconstruction) - percentile of -0.0 returns 0.0 #6799
percentilereturns0.0instead of-0.0 - from_csv: wrong results in permissive modes and failure with a variant schema #6800
from_csvreturns wrong results in permissive modes and fails with a variant schema - GROUP BY on a struct containing a map fails with CometNativeException #6801
GROUP BYon a struct containing a map fails withCometNativeException - Null-named attribute fails Arrow export with "field name cannot be null" #6802 Null-named attribute fails Arrow export (
field name cannot be null)
Iceberg
- CometIcebergWriteDetectionSuite assumes a split Iceberg write plan #6803
CometIcebergWriteDetectionSuiteexpects the split Iceberg write plan but gets a fully native write overCometLocalTableScan(related to feat: enable native Iceberg writes by default #6664)
Done: #4789, #4786, #4787, #4788, plus the NullType and TimeType handling from #4393.
Activity
andygrove commentedon Oct 8, 2026
@mbutrovich heads-up: I appended a Tracking section below your description (your text is unchanged) and filed sub-issues #6795-#6803 from a fresh run of the default flip on current main (#6780, Spark 4.1 only so far). They cover the remaining plan-shape test failures and the gaps in your B3a/B5/B7 buckets that still reproduce. Happy to move or reshape the list if you would prefer it differently.