What is the problem the feature request solves?
Comet can route eligible Spark ScalaUDF expressions through its Arrow-direct codegen dispatcher, keeping the project, exchange, and sort operators around a UDF on the native Comet path instead of falling back to Spark. This is gated behind spark.comet.exec.scalaUDF.codegen.enabled, which currently defaults to false and is documented as experimental.
The feature now has broad type coverage (scalars, complex types with arbitrary nesting, higher-order functions) and end-to-end correctness, fuzz, and Iceberg test coverage. It should be enabled by default so users benefit without opt-in.
Describe the potential solution
- Flip the default of
spark.comet.exec.scalaUDF.codegen.enabled to true.
- Remove the "experimental" status from the config doc and user guides.
- Document how to disable the dispatcher for users who want the previous behavior.
Additional context
Users can still set spark.comet.exec.scalaUDF.codegen.enabled=false to restore the prior fall-back-to-Spark behavior.
What is the problem the feature request solves?
Comet can route eligible Spark
ScalaUDFexpressions through its Arrow-direct codegen dispatcher, keeping the project, exchange, and sort operators around a UDF on the native Comet path instead of falling back to Spark. This is gated behindspark.comet.exec.scalaUDF.codegen.enabled, which currently defaults tofalseand is documented as experimental.The feature now has broad type coverage (scalars, complex types with arbitrary nesting, higher-order functions) and end-to-end correctness, fuzz, and Iceberg test coverage. It should be enabled by default so users benefit without opt-in.
Describe the potential solution
spark.comet.exec.scalaUDF.codegen.enabledtotrue.Additional context
Users can still set
spark.comet.exec.scalaUDF.codegen.enabled=falseto restore the prior fall-back-to-Spark behavior.