---
title: 算子和表达式支持情况
description: "介绍Spark引擎在Gluten上使用OmniOperator算子加速特性时，OmniOperator算子加速特性支持的算子、表达式及其数据类型列表。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2530/bds/kunpengbds_omniruntime_20_02135.html
sourcePath: /source/zh/kunpengboostkithistory/2530/bds/kunpengbds_omniruntime_20_02135.html
indexId: f7c6befe29f733a771a1c450da1de1379cbc97b49bef82f9755bf9c3318af77979
---
# 算子和表达式支持情况

介绍Spark引擎在Gluten上使用OmniOperator算子加速特性时，OmniOperator算子加速特性支持的算子、表达式及其数据类型列表。

在Gluten上使用OmniOperator算子加速特性时，该特性支持的算子、表达式、函数如表2和支持表达式列表所示，表格中使用符号表示算子和表达式是否支持，符号的含义请参见表1。

-   支持算子列表
和  支持表达式列表
中仅描述了OmniOperator算子加速特性支持或涉及的数据类型，未展示的数据类型（BYTE/FLOAT/BINARY/ARRAY/MAP/STRUCT/CALENDAR/UDT）是OmniOperator算子加速特性不支持的。
- 如果使用OmniOperator算子加速特性不支持的算子和表达式，会导致执行计划回退为开源版本执行，对性能会有影响。


**表1 算子和表达式支持表格中符号的含义**

| 状态 | 说明 |
| --- | --- |
| S | 表示支持该算子或表达式。 |
| PS | 表示部分支持该算子或表达式，但存在一些限定条件。具体的限定条件请参见约束与限制。 |
| NS | 表示不支持该算子或表达式。 |
| NA | 表示不涉及该算子或表达式。开源版本Spark也没有此输入场景。 |
| NA\-2 | 表示基于开源版本Spark实现的上下文函数，不涉及OmniOperator算子加速特性。 |
| [Blank Cell] | 表示不适用或需要确认。 |


#### 支持算子列表

Spark引擎使用OmniOperator算子加速特性支持的算子情况如表2所示。


**表2 支持算子列表**

| 开源软件对应算子名称 | OmniOperator算子加速特性算子名称 | BOOLEAN | INT | LONG | DOUBLE | STRING | CHAR | VARCHAR | DATE | DECIMAL | SHORT | TIMESTAMP |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| FileSourceScanExec | FileSourceScanExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| ProjectExec | ProjectExecTransformer | S | S | S | S | S | S | S | S | S | NS | S |
| FilterExec | OmniFilterExecTransformer | S | S | S | S | S | S | S | S | S | NS | S |
| ExpandExec | ExpandExecTransformer | S | S | S | S | S | S | S | S | S | NS | S |
| HashAggregateExec | OmniHashAggregateExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| TopNSortExec | OmniTopNSortTransformer | S | S | S | S | S | S | S | S | S | NS | S |
| SortExec | SortExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| BroadcastExchangeExec | ColumnarBroadcastExchangeExec | S | S | S | S | S | S | S | S | S | S | S |
| TakeOrderedAndProjectExec | TakeOrderedAndProjectExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| UnionExec | UnionExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| ShuffleExchangeExec | OmniColumnarShuffleExchangeExec | S | S | S | S | S | S | S | S | S | S | S |
| BroadcastHashJoinExec | OmniBroadcastHashJoinExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| SortMergeJoinExec | OmniSortMergeJoinExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| WindowExec | WindowExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| ShuffledHashJoinExec | OmniShuffledHashJoinExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| LocalLimitExec | ColumnarLocalLimitExec | S | S | S | S | S | S | S | S | S | S | S |
| GlobalLimitExec | LimitExecTransformer | S | S | S | S | S | S | S | S | S | S | S |
| CoalesceExec | ColumnarCoalesceExec | S | S | S | S | S | S | S | S | S | S | S |
| SubqueryBroadcastExec | ColumnarSubqueryBroadcastExec | S | S | S | S | S | S | S | S | S | S | S |
| AQEShuffleReadExec | OmniAQEShuffleReadExec | S | S | S | S | S | S | S | S | S | S | S |


#### 支持表达式列表

请参见支持表达式列表。
