The following Spark operators are currently replaced with native versions. Query stages that contain any operators not supported by Comet will fall back to regular Spark execution.
| Operator | Spark-Compatible? | Compatibility Notes |
|---|---|---|
| BatchScanExec | Yes | Supports Parquet files and Apache Iceberg Parquet scans. See the Comet Compatibility Guide for more information. |
| BroadcastExchangeExec | Yes | |
| BroadcastHashJoinExec | Yes | |
| BroadcastNestedLoopJoinExec | Yes | Falls back to Spark when the preserved side is broadcast (e.g. LEFT OUTER with BROADCAST on the left). |
| ExpandExec | Yes | |
| FileSourceScanExec | Yes | Supports Parquet files. See the Comet Compatibility Guide for more information. |
| FilterExec | Yes | |
| GenerateExec | Yes | Supports explode and posexplode generators (arrays only, _outer variants are incompatible). |
| GlobalLimitExec | Yes | |
| HashAggregateExec | Yes | |
| InsertIntoHadoopFsRelationCommand | No | Experimental support for native Parquet writes. Disabled by default. |
| LocalLimitExec | Yes | |
| LocalTableScanExec | No | Experimental and disabled by default. |
| ObjectHashAggregateExec | Yes | Supports a limited number of aggregates, such as bloom_filter_agg. |
| ProjectExec | Yes | |
| ShuffleExchangeExec | Yes | |
| ShuffledHashJoinExec | Yes | |
| SortExec | Yes | |
| SortMergeJoinExec | Yes | |
| UnionExec | Yes | |
| WindowExec | No | Disabled by default due to known correctness issues. |