支持的操作符#

Apache Spark 支持处理各种类型的数据。并非所有表达式都支持所有数据类型。用于 Apache Spark 的 RAPIDS 加速器对支持处理的类型有进一步的限制。本文档旨在记录支持哪些操作以及每个操作支持哪些数据类型。由于 Apache Spark 也正在积极开发中,并且本文档是针对 Spark 3.1.1 版本生成的。大部分内容仍然适用于其他版本的 Spark,但可能存在细微的变化。

通用限制#

Decimal

Spark 中的 Decimal 类型支持高达 38 位(128 位)的精度。RAPIDS 加速器从 21.12 版本开始支持 128 位,并且默认启用 decimal。请查看 Decimal 支持 以了解更多详细信息。

Decimal 精度和小数位数遵循与 Apache Spark 中 CPU 模式相同的规则

* In particular, if we have expressions e1 and e2 with precision/scale p1/s1 and p2/s2
* respectively, then the following operations have the following precision / scale:
*
*   Operation    Result Precision                        Result Scale
*   ------------------------------------------------------------------------
*   e1 + e2      max(s1, s2) + max(p1-s1, p2-s2) + 1     max(s1, s2)
*   e1 - e2      max(s1, s2) + max(p1-s1, p2-s2) + 1     max(s1, s2)
*   e1 * e2      p1 + p2 + 1                             s1 + s2
*   e1 / e2      p1 - s1 + s2 + max(6, s1 + p2 + 1)      max(6, s1 + p2 + 1)
*   e1 % e2      min(p1-s1, p2-s2) + max(s1, s2)         max(s1, s2)
*   e1 union e2  max(s1, s2) + max(p1-s1, p2-s2)         max(s1, s2)

但是,Spark 插入 PromotePrecision 以将两边转换为相同的类型。即使结果 Decimal 精度在 18 位以内,GPU 模式也可能回退到 CPU。例如,Decimal(8,2) x Decimal(6,3) 结果为 Decimal (15,5) 在 CPU 上运行,因为由于 PromotePrecision,GPU 模式假定结果为 Decimal(19,6)。甚至在某些极端情况下,Spark 可能会临时返回一个大于 128 位可以存储的 Decimal 值,然后使用 CheckOverflow 操作符将其舍入到所需的精度和小数位数。这意味着即使加速器支持 128 位 decimal,我们也可能无法支持 Spark 可以支持的所有操作。

Timestamp

Spark 中的时间戳在处理之前都将转换为本地时区,并且在存储之前通常会转换为 UTC,例如在 Parquet 或 ORC 中。RAPIDS 加速器仅支持 UTC 作为时间戳的时区。

CalenderInterval

在 Spark 中,CalendarInterval 存储三个值:月、日和微秒。加速器对这种类型的支持仍然非常有限。在某些情况下,仅支持该类型的子集,例如窗口范围目前仅支持天。

配置#

有许多不同的配置值可能会影响操作是否受支持。其中一些是 RAPIDS 加速器的一部分,涵盖了与 Apache Spark 的兼容性级别。这些内容在 此处 进行了介绍。其他一些是 Apache Spark 本身的一部分,这些内容更难记录。更新此文档以涵盖该支持的工作仍在进行中。

但总的来说,如果您对某个操作为何未在 GPU 上运行有任何疑问,您可以将 spark.rapids.sql.explain 设置为 ALL,它将尝试给出此特定操作符或表达式在 CPU 或 GPU 上的所有原因。

#

类型#

类型名称

类型描述

BOOLEAN

保存 true 或 false 值。

BYTE

有符号 8 位整数值。

SHORT

有符号 16 位整数值。

INT

有符号 32 位整数值。

LONG

有符号 64 位整数值。

FLOAT

32 位浮点数值。

DOUBLE

64 位浮点数值。

DATE

不带时间组件的日期。存储为 32 位整数,表示自 1970 年 1 月 1 日以来的天数。

TIMESTAMP

日期和时间。存储为 64 位整数,表示自 1970 年 1 月 1 日以来的微秒数,采用当前时区。

STRING

文本字符串。存储为 UTF-8 编码的字节。

DECIMAL

具有可配置精度和小数位数的定点 decimal 值。

NULL

仅存储 null 值,通常仅在无法从 SQL 确定其他类型时使用。

BINARY

非空字节数组。

CALENDAR

表示一段时间。存储为月、日和微秒。

ARRAY

元素序列。

MAP

一组键值对,键不能为空。

STRUCT

一系列命名字段。

UDT

用户定义的类型和 Java 对象。这些不是标准 SQL 类型。

支持#

描述

S

(支持)Apache Spark 和 RAPIDS 加速器都完全支持此类型。

(不适用)Spark 和 RAPIDS 加速器在这种情况下都不支持此类型。

PS

(部分支持)Apache Spark 支持此类型,但 RAPIDS 加速器仅部分支持。缺少的内容的解释将包含在此处。

NS

(不支持)Apache Spark 支持此类型,但 RAPIDS 加速器不支持。

SparkPlan 或执行器节点#

Apache Spark 使用有向无环图 (DAG) 处理来构建查询。此图中的节点是 SparkPlan 的实例,表示各种高级操作,例如执行 filter 或 project。下面介绍了 RAPIDS 加速器支持的操作。

执行器

描述

注释

参数

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

CoalesceExec

dataframe coalesce 方法的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

CollectLimitExec

减少到单个分区并应用限制

默认情况下禁用此功能,因为 Collect Limit 替换在 GPU 上可能会较慢,如果批处理中包含大量行,则可以通过限制从 GPU 传输到 CPU 的行数来提供帮助

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

ExpandExec

expand 操作符的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

FileSourceScanExec

从文件中读取数据,通常来自 Hive 表

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

FilterExec

大多数 filter 语句的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

GenerateExec

用于生成比输入行更多的输出行的操作的后端,例如 explode

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

GlobalLimitExec

跨分区限制结果

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

LocalLimitExec

每个分区限制结果

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

ProjectExec

大多数 select、withColumn 和 dropColumn 语句的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

RangeExec

range 操作符的后端

输入/输出

S

SampleExec

sample 操作符的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

SortExec

sort 操作符的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

SubqueryBroadcastExec

计划收集和转换广播键值

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

S

TakeOrderedAndProjectExec

获取由 sortOrder 定义的第一个限制元素,并在需要时执行 projection

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

UnionExec

union 操作符的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 当列是 struct 且存在非重叠字段时,unionByName 不会选择性地推断缺失的 struct 字段的 null 值;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

执行器

描述

注释

参数

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

CustomShuffleReaderExec

shuffle 查询阶段的包装器

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

HashAggregateExec

基于哈希的聚合的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 不允许用于分组表达式;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 不允许用于分组表达式;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 如果分组表达式包含 Array 或 Map 作为子级,则不允许用于分组表达式;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

ObjectHashAggregateExec

基于哈希的聚合的后端,支持 TypedImperativeAggregate 函数

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

PS 仅当聚合缓冲区可以在 CPU 和 GPU 之间转换时才允许

NS

PS 不允许用于分组表达式;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 不允许用于分组表达式;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 如果分组表达式包含 Array 或 Map 作为子级,则不允许用于分组表达式;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

SortAggregateExec

基于排序的聚合的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

PS 仅当聚合缓冲区可以在 CPU 和 GPU 之间转换时才允许

NS

PS 不允许用于分组表达式;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 不允许用于分组表达式;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 如果分组表达式包含 Array 或 Map 作为子级,则不允许用于分组表达式;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

InMemoryTableScanExec

InMemoryTableScanExec 的实现,以使用 GPU 加速缓存

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、BINARY、CALENDAR、UDT

NS

DataWritingCommandExec

写入数据

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

PS 仅 Orc 和 Parquet 支持 128 位 decimal

NS

PS 仅支持 Parquet

NS

PS 仅支持 Parquet;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、CALENDAR、UDT

PS 仅支持 Parquet;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、CALENDAR、UDT

PS 仅支持 Parquet;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、CALENDAR、UDT

NS

ExecutedCommandExec

急切执行的命令

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

S

BatchScanExec

大多数文件输入的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、CALENDAR、UDT

NS

BroadcastExchangeExec

数据广播交换的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、UDT

NS

ShuffleExchangeExec

大多数进程之间交换的数据的后端

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 如果 spark.sql.execution.sortBeforeRepartition 为 true,则不支持轮循分区;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 如果 spark.sql.execution.sortBeforeRepartition 为 true,则不支持轮循分区;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 如果 spark.sql.execution.sortBeforeRepartition 为 true,则不支持嵌套 struct 的轮循分区;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

BroadcastHashJoinExec

使用广播数据实现 join

leftKeys

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

rightKeys

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

condition

S

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

BroadcastNestedLoopJoinExec

使用暴力方法实现 join。不支持完全外连接和广播侧与 join 侧匹配的 join(例如:左外连接与左广播)

condition (仅当条件表达式可以转换为 GPU AST 表达式时,才支持非内连接)

S

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

执行器

描述

注释

参数

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

CartesianProductExec

使用暴力方法实现 join

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

ShuffledHashJoinExec

使用哈希 shuffle 数据实现 join

leftKeys

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

rightKeys

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

condition

S

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

SortMergeJoinExec

排序合并 join,替换为 shuffle 哈希 join

leftKeys

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

rightKeys

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

condition

S

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

AggregateInPandasExec

Aggregation Pandas UDF 的后端,这加速了 Java 进程和 Python 进程之间的数据传输。它还支持在启用时为 Python 进程调度 GPU 资源。

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

NS

NS

NS

NS

ArrowEvalPythonExec

Scalar Pandas UDF 的后端。加速了 Java 进程和 Python 进程之间的数据传输。它还支持在启用时为 Python 进程调度 GPU 资源

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

FlatMapCoGroupsInPandasExec

CoGrouped Aggregation Pandas UDF 的后端。加速了 Java 进程和 Python 进程之间的数据传输。它还支持在启用时为 Python 进程调度 GPU 资源。

默认情况下禁用此功能,因为对于许多小分组,性能并不理想

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

NS

NS

NS

NS

FlatMapGroupsInPandasExec

Flat Map Groups Pandas UDF 的后端,加速了 Java 进程和 Python 进程之间的数据传输。它还支持在启用时为 Python 进程调度 GPU 资源。

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

NS

NS

NS

NS

MapInPandasExec

Map Pandas Iterator UDF 的后端。加速了 Java 进程和 Python 进程之间的数据传输。它还支持在启用时为 Python 进程调度 GPU 资源。

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

WindowInPandasExec

Window Aggregation Pandas UDF 的后端,加速了 Java 进程和 Python 进程之间的数据传输。它还支持在启用时为 Python 进程调度 GPU 资源。目前,它仅支持基于行的窗口框架。

默认情况下禁用此功能,因为它目前仅支持基于行的框架

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

NS

NS

NS

执行器

描述

注释

参数

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

WindowExec

Window 操作符后端

partitionSpec

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

NS

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

HiveTableScanExec

Scan Exec 用于读取 Hive 分隔文本表

输入/输出

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

NS

NS

NS

NS

NS

NS

表达式和 SQL 函数#

在 DAG 的每个节点内,可能有一个或多个表达式树,用于描述计划的该部分中发生的各种类型的处理。这些可以是诸如将两个数字相加或检查 null 之类的操作。这些表达式可以有多个输入参数和一个输出值。这些表达式也可能发生在不同的上下文中。由于加速器的工作方式,不同的上下文具有不同的支持级别。

最常见的表达式上下文是 project。在这种上下文中,来自单个输入行的值将通过表达式,并且结果也将用于在同一行中生成某些内容。请注意,即使在聚合和窗口操作的情况下,大多数处理仍然在 project 上下文中完成,无论是在其他处理发生之前还是之后。

诸如 count 或 sum 之类的聚合操作可能发生在 aggregationreductionwindow 上下文中。aggregation 是指在按一个或多个键对数据进行分组时执行的操作。reduction 是指没有 group by 并且整个列只有一个结果的情况。window 用于窗口操作。

最终的表达式上下文是 AST 或抽象语法树。在解释 AST 之前,我们首先需要详细解释 project 上下文操作的工作原理。通常,对于 project 上下文操作,Spark 开发的计划在 CPU 上读取,并选择一组适当的 GPU 内核来执行这些操作。例如,a >= b + 1。将导致调用 GPU 内核将 1 添加到 b,然后调用另一个内核来比较 a 与该结果。解释发生在 CPU 上,GPU 用于执行处理。对于 AST,由于某些原因,解释无法在 CPU 上发生,而必须在 GPU 内核本身中完成。条件 join 就是一个例子。如果您想对 A.a >= B.b + 1 执行 join,其中 AB 是单独的表或数据帧,则 +>= 操作不能作为单独的独立内核运行,因为它是在 AB 中的行的组合上完成的。相反,Spark 开发的计划的一部分被转换为抽象语法树并发送到 GPU,在那里可以对其进行解释。在这种情况下支持的操作的数量和类型是有限的。

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Abs

abs

绝对值

project

输入

S

S

S

S

S

S

S

结果

S

S

S

S

S

S

S

AST

输入

NS

NS

S

S

S

S

NS

结果

NS

NS

S

S

S

S

NS

Acos

acos

反余弦

project

输入

S

结果

S

AST

输入

S

结果

S

Acosh

acosh

反双曲余弦

project

输入

S

结果

S

AST

输入

S

结果

S

Add

+

加法

project

lhs

S

S

S

S

S

S

S

NS

rhs

S

S

S

S

S

S

S

NS

结果

S

S

S

S

S

S

S

NS

AST

lhs

NS

NS

S

S

S

S

NS

NS

rhs

NS

NS

S

S

S

S

NS

NS

结果

NS

NS

S

S

S

S

NS

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Alias

为列命名

project

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

AST

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

NS

And

and

逻辑与

project

lhs

S

rhs

S

结果

S

AST

lhs

S

rhs

S

结果

S

ArrayContains

array_contains

如果数组包含传入的键,则返回布尔值

project

array

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

key

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

NS

NS

NS

NS

结果

S

ArrayExcept

array_except

返回一个数组,其中包含 array1 中的元素,但不包含 array2 中的元素,且不重复

这与 Spark 版本不是 100% 兼容,因为 GPU 实现将 -0.0 和 0.0 视为相等,但 CPU 实现目前不这样做(请参阅 SPARK-39845)。此外,Apache Spark 3.1.3 修复了 SPARK-36741 问题,其中这些类似集合的操作符中的 NaN 未被视为相等。在这种情况下,我们选择打破与旧版本 Spark 的兼容性,并像 3.1.3+ 一样处理 NaN

project

array1

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

array2

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

ArrayExists

exists

如果任何元素满足谓词 LambdaFunction,则返回 true

project

argument

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

function

S

结果

S

ArrayIntersect

array_intersect

返回一个数组,其中包含 array1 和 array2 交集中的元素,且不重复

这与 Spark 版本不是 100% 兼容,因为 GPU 实现将 -0.0 和 0.0 视为相等,但 CPU 实现目前不这样做(请参阅 SPARK-39845)。此外,Apache Spark 3.1.3 修复了 SPARK-36741 问题,其中这些类似集合的操作符中的 NaN 未被视为相等。在这种情况下,我们选择打破与旧版本 Spark 的兼容性,并像 3.1.3+ 一样处理 NaN

project

array1

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

array2

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

ArrayMax

array_max

返回数组中的最大值

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

ArrayMin

array_min

返回数组中的最小值

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

ArrayRemove

array_remove

从输入数组(左)中删除所有等于输入元素(右)的元素后,返回数组

project

array

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

NS

NS

element

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

ArrayRepeat

array_repeat

返回包含给定输入值(左)计数(右)次的数组

project

left

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

right

S

S

S

S

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

ArrayTransform

transform

使用 transform 函数转换数组中的元素。这类似于函数式编程中的 map

project

argument

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

function

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

ArrayUnion

array_union

返回一个数组,其中包含 array1 和 array2 并集中的元素,且不重复。

这与 Spark 版本不是 100% 兼容,因为 GPU 实现将 -0.0 和 0.0 视为相等,但 CPU 实现目前不这样做(请参阅 SPARK-39845)。此外,Apache Spark 3.1.3 修复了 SPARK-36741 问题,其中这些类似集合的操作符中的 NaN 未被视为相等。在这种情况下,我们选择打破与旧版本 Spark 的兼容性,并像 3.1.3+ 一样处理 NaN

project

array1

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

array2

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

ArraysOverlap

arrays_overlap

如果 a1 至少包含一个也存在于 a2 中的非空元素,则返回 true。如果数组没有公共元素,并且它们都非空,并且其中任何一个包含 null 元素,则返回 null,否则返回 false。

这与 Spark 版本不是 100% 兼容,因为 GPU 实现将 -0.0 和 0.0 视为相等,但 CPU 实现目前不这样做(请参阅 SPARK-39845)。此外,Apache Spark 3.1.3 修复了 SPARK-36741 问题,其中这些类似集合的操作符中的 NaN 未被视为相等。在这种情况下,我们选择打破与旧版本 Spark 的兼容性,并像 3.1.3+ 一样处理 NaN

project

array1

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

array2

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

结果

S

ArraysZip

arrays_zip

返回一个合并的 struct 数组,其中第 N 个 struct 包含输入数组的所有第 N 个值。

project

children

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

Asin

asin

反正弦

project

输入

S

结果

S

AST

输入

S

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Asinh

asinh

反双曲正弦

project

输入

S

结果

S

AST

输入

S

结果

S

AtLeastNNonNulls

检查非 null/Nan 值的数量是否大于给定值

project

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

结果

S

Atan

atan

反正切

project

输入

S

结果

S

AST

输入

S

结果

S

Atanh

atanh

反双曲正切

project

输入

S

结果

S

AST

输入

S

结果

S

AttributeReference

引用输入列

project

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

AST

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

BRound

bround

使用 HALF_EVEN 舍入模式将表达式舍入到 d 位小数

project

value

S

S

S

S

PS 结果可能略有不同的舍入

PS 结果可能略有不同的舍入

S

scale

S

结果

S

S

S

S

S

S

S

BitLength

bit_length

字符串数据的位长度

project

输入

S

NS

结果

S

BitwiseAnd

&

返回操作数的按位与

project

lhs

S

S

S

S

rhs

S

S

S

S

结果

S

S

S

S

AST

lhs

NS

NS

S

S

rhs

NS

NS

S

S

结果

NS

NS

S

S

BitwiseNot

~

返回操作数的按位非

project

输入

S

S

S

S

结果

S

S

S

S

AST

输入

NS

NS

S

S

结果

NS

NS

S

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

BitwiseOr

|

返回操作数的按位或

project

lhs

S

S

S

S

rhs

S

S

S

S

结果

S

S

S

S

AST

lhs

NS

NS

S

S

rhs

NS

NS

S

S

结果

NS

NS

S

S

BitwiseXor

^

返回操作数的按位异或

project

lhs

S

S

S

S

rhs

S

S

S

S

结果

S

S

S

S

AST

lhs

NS

NS

S

S

rhs

NS

NS

S

S

结果

NS

NS

S

S

CaseWhen

when

CASE WHEN 表达式

project

predicate

S

value

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Cbrt

cbrt

立方根

project

输入

S

结果

S

AST

输入

S

结果

S

Ceil

ceiling, ceil

数字的上限

project

输入

S

S

S

结果

S

S

S

CheckOverflow

在 DecimalType 数据之间进行算术运算后检查溢出

project

输入

S

结果

S

Coalesce

coalesce

如果存在,则返回第一个非 null 参数。否则,返回 null

project

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

Concat

concat

列表/字符串连接

project

输入

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

结果

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

ConcatWs

concat_ws

使用给定的分隔符将多个输入字符串或字符串数组连接成单个字符串

project

输入

S

S

结果

S

Contains

Contains

project

src

S

search

PS 仅限字面值

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Cos

cos

余弦

project

输入

S

结果

S

AST

输入

S

结果

S

Cosh

cosh

双曲余弦

project

输入

S

结果

S

AST

输入

S

结果

S

Cot

cot

余切

project

输入

S

结果

S

AST

输入

S

结果

S

CreateArray

array

返回包含给定元素的数组

project

arg

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、MAP、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、MAP、UDT

CreateMap

map

创建 map

project

key

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

value

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

CreateNamedStruct

named_struct, struct

使用给定的字段名称和值创建 struct

project

name

S

value

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

CurrentRow$

窗口框架的特殊边界,指示在当前行停止

project

结果

S

DateAdd

date_add

返回 start_date 之后 num_days 天的日期

project

startDate

S

days

S

S

S

结果

S

DateAddInterval

将间隔添加到日期

project

start

S

interval

PS 不支持月间隔;仅限字面值

结果

S

DateDiff

datediff

返回从 startDate 到 endDate 的天数

project

lhs

S

rhs

S

结果

S

DateFormatClass

date_format

将时间戳转换为日期格式指定的字符串值

project

timestamp

PS 仅 UTC 是 TIMESTAMP 支持的时区

strfmt

PS 仅支持有限数量的格式;仅限字面值

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

DateSub

date_sub

返回 start_date 之前 num_days 天的日期

project

startDate

S

days

S

S

S

结果

S

DayOfMonth

dayofmonth, day

从日期或时间戳返回月份中的日

project

输入

S

结果

S

DayOfWeek

dayofweek

返回星期几(1 = 星期日…7=星期六)

project

输入

S

结果

S

DayOfYear

dayofyear

从日期或时间戳返回年份中的日

project

输入

S

结果

S

DenseRank

dense_rank

窗口函数,返回聚合窗口内的密集排名值

window

ordering

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

NS

结果

S

Divide

/

除法

project

lhs

S

S

rhs

S

S

结果

S

S

ElementAt

element_at

如果列是数组,则返回数组中给定(基于 1 的)索引处的元素。如果列是 map,则返回 map 中给定键的值。

project

array/map

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 如果是 map,则仅支持原始键类型;仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

index/key

PS 不支持作为数组索引。

PS 不支持作为数组索引。

PS 不支持作为数组索引。

S

PS 不支持作为数组索引。

PS 不支持作为数组索引。

PS 不支持作为数组索引。

PS 不支持作为数组索引。

PS 不支持作为数组索引;仅 UTC 是 TIMESTAMP 支持的时区

PS 不支持作为数组索引。

PS 不支持作为数组索引。

NS

NS

NS

NS

NS

NS

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

EndsWith

以...结尾

project

src

S

search

PS 仅限字面值

结果

S

EqualNullSafe

<=>

检查值是否相等,包括 null <=>

project

lhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

rhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

结果

S

EqualTo

=, ==

检查值是否相等

project

lhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

rhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

结果

S

AST

lhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

rhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

结果

S

Exp

exp

欧拉数 e 的幂

project

输入

S

结果

S

AST

输入

S

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Explode

explode, explode_outer

给定一个输入数组,为数组中的每个值生成一系列行

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

Expm1

expm1

欧拉数 e 的幂减 1

project

输入

S

结果

S

AST

输入

S

结果

S

Floor

floor

数字的下限

project

输入

S

S

S

结果

S

S

S

FromUTCTimestamp

from_utc_timestamp

在输入时区中呈现输入 UTC 时间戳

project

timestamp

PS 仅 UTC 是 TIMESTAMP 支持的时区

timezone

PS 仅支持等效于 UTC 的时区

结果

PS 仅 UTC 是 TIMESTAMP 支持的时区

FromUnixTime

from_unixtime

从 unix 时间戳获取字符串

project

sec

S

format

PS 仅支持有限数量的格式;仅限字面值

结果

S

GetArrayItem

获取 Array 中 ordinal 处的字段

project

array

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

ordinal

S

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

GetArrayStructFields

提取 struct 数组类型的数据的所有数组元素的第 ordinal 个字段

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

GetJsonObject

get_json_object

从路径提取 json 对象

project

json

S

path

PS 仅限字面值

结果

S

GetMapValue

根据键从 Map 获取值

project

map

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

key

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

NS

NS

NS

NS

NS

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

GetStructField

获取 struct 的命名字段

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

GetTimestamp

使用给定模式从字符串获取时间戳。

project

timeExp

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

format

PS 仅支持有限数量的格式;仅限字面值

结果

PS 仅 UTC 是 TIMESTAMP 支持的时区

GreaterThan

>

> 操作符

project

lhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

rhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

结果

S

AST

lhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

rhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

GreaterThanOrEqual

>=

>= 操作符

project

lhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

rhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

结果

S

AST

lhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

rhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

结果

S

Greatest

greatest

返回所有参数的最大值,跳过 null 值

project

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

Hour

hour

返回字符串/时间戳的小时组件

project

输入

PS 仅 UTC 是 TIMESTAMP 支持的时区

结果

S

Hypot

hypot

实数的勾股加法(斜边)

project

lhs

S

rhs

S

结果

S

If

if

IF 表达式

project

predicate

S

trueValue

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

falseValue

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

In

in

IN 操作符

project

value

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

list

PS 仅限字面值

PS 仅限字面值

PS 仅限字面值

PS 仅限字面值

PS 仅限字面值

PS 仅限字面值

PS 仅限字面值

PS 仅限字面值

PS 仅 UTC 是 TIMESTAMP 支持的时区;仅限字面值

PS 仅限字面值

PS 仅限字面值

NS

NS

NS

NS

NS

NS

结果

S

InSet

INSET 操作符

project

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

结果

S

InitCap

initcap

返回 str,其中每个单词的首字母大写。所有其他字母均为小写

这与 Spark 版本不是 100% 兼容,因为 cuDF 和 JVM 使用的 Unicode 版本可能不同,导致某些极端情况下的字符无法正确更改大小写。

project

输入

S

结果

S

InputFileBlockLength

input_file_block_length

返回正在读取的块的长度,如果不可用,则返回 -1

project

结果

S

InputFileBlockStart

input_file_block_start

返回正在读取的块的起始偏移量,如果不可用,则返回 -1

project

结果

S

InputFileName

input_file_name

返回正在读取的文件名,如果不可用,则返回空字符串

project

结果

S

IntegralDivide

div

结果为整数的除法

project

lhs

S

S

rhs

S

S

结果

S

IsNaN

isnan

检查值是否为 NaN

project

输入

S

S

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

IsNotNull

isnotnull

检查值是否为非 null

project

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

结果

S

IsNull

isnull

检查值是否为 null

project

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

结果

S

JsonToStructs

from_json

返回具有给定 jsonStrschema 的 struct 值

默认情况下禁用此功能,因为从列解析 JSON 存在大量问题,目前应视为 beta 质量。

project

jsonStr

S

结果

NS

PS 不支持的子类型 BOOLEAN、BYTE、SHORT、INT、LONG、FLOAT、DOUBLE、DATE、TIMESTAMP、DECIMAL、NULL、BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

NS

JsonTuple

json_tuple

返回类似于函数 get_json_object 的元组,但它接受多个名称。所有输入参数和输出列类型均为字符串。

project

json

S

field

PS 仅限字面值

结果

S

KnownFloatingPointNormalized

用于防止冗余规范化的标记

project

输入

S

S

结果

S

S

KnownNotNull

将表达式标记为已知为非 null

project

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 NULL、UDT

NS

Lag

lag

窗口函数,返回此项后面的 N 个条目

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

offset

S

default

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

LambdaFunction

保存高阶 SQL 函数

project

function

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

arguments

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

LastDay

last_day

返回日期所属月份的最后一天

project

输入

S

结果

S

Lead

lead

窗口函数,返回此项前面的 N 个条目

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

offset

S

default

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

Least

least

返回所有参数的最小值,跳过 null 值

project

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

Length

length, character_length, char_length

字符串字符长度或二进制字节长度

project

输入

S

NS

结果

S

LessThan

<

< 操作符

project

lhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

rhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

结果

S

AST

lhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

rhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

LessThanOrEqual

<=

<= 操作符

project

lhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

rhs

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

结果

S

AST

lhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

rhs

S

S

S

S

S

NS

NS

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

结果

S

Like

like

Like

project

src

S

search

PS 仅限字面值

结果

S

Literal

保存来自查询的静态值

project

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

NS

AST

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

NS

NS

NS

NS

NS

NS

NS

NS

NS

Log

ln

自然对数

project

输入

S

结果

S

Log10

log10

以 10 为底的对数

project

输入

S

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Log1p

log1p

自然对数 1 + expr

project

输入

S

结果

S

Log2

log2

以 2 为底的对数

project

输入

S

结果

S

Logarithm

log

可变底数的对数

project

value

S

base

S

结果

S

Lower

lower, lcase

字符串小写操作符

这与 Spark 版本不是 100% 兼容,因为 cuDF 和 JVM 使用的 Unicode 版本可能不同,导致某些极端情况下的字符无法正确更改大小写。

project

输入

S

结果

S

MakeDecimal

从非比例化的长整型值创建 Decimal,用于某些聚合优化

project

输入

S

结果

PS 最大 DECIMAL 精度为 18

MapConcat

map_concat

返回所有给定 map 的并集

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

MapEntries

map_entries

返回给定 map 中所有条目的无序数组

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

MapFilter

map_filter

使用函数过滤 map 中的条目

project

argument

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

function

S

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

MapKeys

map_keys

返回包含 map 键的无序数组

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

MapValues

map_values

返回包含 map 值的无序数组

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

Md5

md5

MD5 哈希操作符

project

输入

S

结果

S

Minute

minute

返回字符串/时间戳的分钟组件

project

输入

PS 仅 UTC 是 TIMESTAMP 支持的时区

结果

S

MonotonicallyIncreasingID

monotonically_increasing_id

返回单调递增的 64 位整数

project

结果

S

Month

month

从日期或时间戳返回月份

project

输入

S

结果

S

Multiply

*

乘法

project

lhs

S

S

S

S

S

S

S

rhs

S

S

S

S

S

S

S

结果

S

S

S

S

S

S

S

AST

lhs

NS

NS

S

S

S

S

NS

rhs

NS

NS

S

S

S

S

NS

结果

NS

NS

S

S

S

S

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Murmur3Hash

hash

Murmur3 哈希操作符

project

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、UDT

NS

结果

S

NaNvl

nanvl

如果 left 不是 NaN,则计算结果为 left,否则计算结果为 right

project

lhs

S

S

rhs

S

S

结果

S

S

NamedLambdaVariable

高阶 SQL 函数的参数

project

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

Not

!, not

布尔非操作符

project

输入

S

结果

S

AST

输入

S

结果

S

NthValue

nth_value

nth 窗口操作符

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

offset

S

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

OctetLength

octet_length

字符串数据的字节长度

project

输入

S

NS

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Or

or

逻辑或

project

lhs

S

rhs

S

结果

S

AST

lhs

S

rhs

S

结果

S

PercentRank

percent_rank

窗口函数,返回聚合窗口内的百分比排名值

window

ordering

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

NS

结果

S

Pmod

pmod

Pmod

project

lhs

S

S

S

S

S

S

PS 不支持精度为 38 的 decimals;最大 DECIMAL 精度为 18

rhs

S

S

S

S

S

S

NS

结果

S

S

S

S

S

S

NS

PosExplode

posexplode_outer, posexplode

给定一个输入数组,为数组中的每个值生成一系列行

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

Pow

pow, power

lhs ^ rhs

project

lhs

S

rhs

S

结果

S

AST

lhs

S

rhs

S

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

PreciseTimestampConversion

内部使用的表达式,用于将 TimestampType 转换为 Long 并返回,而不会丢失精度,例如,以微秒为单位。用于时间窗口

project

输入

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

结果

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

PromotePrecision

在 DecimalType 数据之间进行算术运算之前提升精度

project

输入

S

结果

S

PythonUDF

在外部 python 进程中运行的 UDF。实际上不在 GPU 上运行,但可以加速与它的数据传输

aggregation

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、MAP

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、MAP

reduction

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、MAP

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、MAP

window

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、MAP

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、MAP

project

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、CALENDAR、MAP、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、MAP

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 DECIMAL、NULL、BINARY、MAP

季度

quarter

返回日期的年份季度,范围为 1 到 4

project

输入

S

结果

S

RLike

rlike

Like 的正则表达式版本

project

str

S

regexp

PS 仅限字面值

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

RaiseError

raise_error

抛出异常

project

输入

S

结果

S

Rand

random, rand

生成一个随机列,其值在 [0, 1) 范围内独立同均匀分布

project

seed

S

S

结果

S

Rank

rank

窗口函数,返回聚合窗口内的排名值

window

ordering

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

NS

结果

S

RegExpExtract

regexp_extract

提取由正则表达式标识的特定组

project

str

S

regexp

PS 仅限字面值

idx

S

结果

S

RegExpExtractAll

regexp_extract_all

提取与正则表达式组索引对应的所有匹配正则表达式的字符串

project

str

S

regexp

PS 仅限字面值

idx

PS 仅限字面值

结果

S

RegExpReplace

regexp_replace

使用正则表达式模式替换字符串

project

regex

PS 仅限字面值

结果

S

pos

附注:仅支持值 1

str

S

rep

PS 仅限字面值

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Remainder

%, mod

余数或模数

project

lhs

S

S

S

S

S

S

S

rhs

S

S

S

S

S

S

S

结果

S

S

S

S

S

S

S

ReplicateRows

给定一个输入行,将该行复制 N 次

project

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

Reverse

reverse

返回反转的字符串或元素顺序相反的数组

project

输入

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

结果

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

Rint

rint

将双精度值向上舍入为最接近的等于整数的双精度值

project

输入

S

结果

S

AST

输入

S

结果

S

Round

round

使用 HALF_UP 舍入模式将表达式舍入到 d 位小数

project

value

S

S

S

S

PS 结果可能略有不同的舍入

PS 结果可能略有不同的舍入

S

scale

S

结果

S

S

S

S

S

S

S

RowNumber

row_number

窗口函数,返回聚合窗口内行的索引

window

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

ScalaUDF

用户自定义函数 (UDF),UDF 可以选择实现 RAPIDS 加速接口以获得更好的性能。

project

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

Second

second

返回字符串/时间戳的秒组件

project

输入

PS 仅 UTC 是 TIMESTAMP 支持的时区

结果

S

Sequence

sequence

Sequence

project

start

S

S

S

S

NS

NS

stop

S

S

S

S

NS

NS

step

S

S

S

S

NS

结果

附注:不支持的子类型 DATE、TIMESTAMP

ShiftLeft

shiftleft

按位左移 (<<)

project

value

S

S

amount

S

结果

S

S

ShiftRight

shiftright

按位右移 (>>)

project

value

S

S

amount

S

结果

S

S

ShiftRightUnsigned

shiftrightunsigned

按位无符号右移 (>>>)

project

value

S

S

amount

S

结果

S

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Signum

sign, signum

如果 expr 为负数,则返回 -1.0;如果为 0,则返回 0.0;如果为正数,则返回 1.0

project

输入

S

结果

S

Sin

sin

正弦

project

输入

S

结果

S

AST

输入

S

结果

S

Sinh

sinh

双曲正弦

project

输入

S

结果

S

AST

输入

S

结果

S

Size

size, cardinality

数组或 Map 的大小

project

输入

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 CALENDAR、UDT

结果

S

SortArray

sort_array

返回一个排序后的数组,其中包含输入数组以及升序/降序

project

array

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、UDT

ascendingOrder

S

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、UDT

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

SortOrder

排序顺序

project

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

SparkPartitionID

spark_partition_id

返回当前分区 ID

project

结果

S

SpecifiedWindowFrame

窗口帧宽度的规范,窗口函数围绕该宽度对输入行组(或“帧”)进行求值

project

lower

S

S

S

S

NS

NS

S

S

upper

S

S

S

S

NS

NS

S

S

结果

S

S

S

S

NS

NS

NS

S

Sqrt

sqrt

平方根

project

输入

S

结果

S

AST

输入

S

结果

S

StartsWith

以...开始

project

src

S

search

PS 仅限字面值

结果

S

StringInstr

instr

Instr 字符串运算符

project

str

S

substr

PS 仅限字面值

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

StringLPad

lpad

在字符串左侧填充

project

str

S

len

PS 仅限字面值

pad

PS 仅限字面值

结果

S

StringLocate

position, locate

子字符串搜索运算符

project

substr

PS 仅限字面值

str

S

start

PS 仅限字面值

结果

S

StringRPad

rpad

在字符串右侧填充

project

str

S

len

PS 仅限字面值

pad

PS 仅限字面值

结果

S

StringRepeat

repeat

StringRepeat 运算符,使用 repeatTimes 给定的次数重复给定的字符串

project

输入

S

repeatTimes

S

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

StringReplace

replace

StringReplace 运算符

project

src

S

search

PS 仅限字面值

replace

PS 仅限字面值

结果

S

StringSplit

split

围绕匹配 regex 的出现拆分 str

project

str

S

regexp

附注:仅支持非常有限的正则表达式子集;仅限文字值

limit

PS 仅限字面值

结果

S

StringToMap

str_to_map

将输入字符串拆分为键值字符串对后,创建 Map

project

str

S

pairDelim

S

keyValueDelim

S

结果

S

StringTrim

trim

StringTrim 运算符

project

src

S

trimStr

PS 仅限字面值

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

StringTrimLeft

ltrim

StringTrimLeft 运算符

project

src

S

trimStr

PS 仅限字面值

结果

S

StringTrimRight

rtrim

StringTrimRight 运算符

project

src

S

trimStr

PS 仅限字面值

结果

S

Substring

substr, substring

Substring 运算符

project

str

S

NS

pos

S

len

S

结果

S

NS

SubstringIndex

substring_index

substring_index 运算符

project

str

S

delim

附注:仅允许单个字符;仅限文字值

count

PS 仅限字面值

结果

S

Subtract

-

减法

project

lhs

S

S

S

S

S

S

S

NS

rhs

S

S

S

S

S

S

S

NS

结果

S

S

S

S

S

S

S

NS

AST

lhs

NS

NS

S

S

S

S

NS

NS

rhs

NS

NS

S

S

S

S

NS

NS

结果

NS

NS

S

S

S

S

NS

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Tan

tan

正切

project

输入

S

结果

S

AST

输入

S

结果

S

Tanh

tanh

双曲正切

project

输入

S

结果

S

AST

输入

S

结果

S

TimeAdd

将间隔添加到时间戳

project

start

PS 仅 UTC 是 TIMESTAMP 支持的时区

interval

PS 不支持月间隔;仅限字面值

结果

PS 仅 UTC 是 TIMESTAMP 支持的时区

ToDegrees

degrees

将弧度转换为度

project

输入

S

结果

S

ToRadians

radians

将度转换为弧度

project

输入

S

结果

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

ToUnixTimestamp

to_unix_timestamp

返回给定时间的 UNIX 时间戳

project

timeExp

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

format

PS 仅支持有限数量的格式;仅限字面值

结果

S

TransformKeys

transform_keys

使用转换函数转换 Map 中的键

project

argument

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

function

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

TransformValues

transform_values

使用转换函数转换 Map 中的值

project

argument

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

function

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

UnaryMinus

negative

对数值求反

project

输入

S

S

S

S

S

S

S

NS

结果

S

S

S

S

S

S

S

NS

AST

输入

NS

NS

S

S

S

S

NS

NS

结果

NS

NS

S

S

S

S

NS

NS

UnaryPositive

positive

前面带有 + 的数值

project

输入

S

S

S

S

S

S

S

NS

结果

S

S

S

S

S

S

S

NS

AST

输入

S

S

S

S

S

S

NS

NS

结果

S

S

S

S

S

S

NS

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

UnboundedFollowing$

窗口帧的特殊边界,指示当前行之后的所有行

project

结果

S

UnboundedPreceding$

窗口帧的特殊边界,指示当前行之后的所有行

project

结果

S

UnixTimestamp

unix_timestamp

返回当前或指定时间的 UNIX 时间戳

project

timeExp

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

format

PS 仅支持有限数量的格式;仅限字面值

结果

S

UnscaledValue

将 Decimal 转换为未缩放的长整型值,以进行某些聚合优化

project

输入

PS 最大 DECIMAL 精度为 18

结果

S

Upper

upper, ucase

字符串大写运算符

这与 Spark 版本不是 100% 兼容,因为 cuDF 和 JVM 使用的 Unicode 版本可能不同,导致某些极端情况下的字符无法正确更改大小写。

project

输入

S

结果

S

WeekDay

weekday

返回星期几(0 = 星期一...6=星期日)

project

输入

S

结果

S

WindowExpression

基于行组(或“窗口”)计算表的每行的返回值

window

windowFunction

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

windowSpec

S

S

S

S

NS

NS

PS 最大 DECIMAL 精度为 18

S

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

WindowSpecDefinition

窗口函数的规范,指示分区表达式、行排序和窗口宽度

project

partition

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

NS

value

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Year

year

从日期或时间戳返回值年份

project

输入

S

结果

S

AggregateExpression

聚合表达式

aggregation

aggFunc

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

filter

S

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

reduction

aggFunc

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

filter

S

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

window

aggFunc

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

filter

S

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

ApproximatePercentile

percentile_approx, approx_percentile

近似百分位数

这与 Spark 版本不是 100% 兼容,因为 approx_percentile 的 GPU 实现与 Apache Spark 不是位对位兼容

aggregation

输入

S

S

S

S

S

S

NS

NS

S

percentage

S

S

accuracy

S

结果

S

S

S

S

S

S

NS

NS

S

附注:不支持的子类型 DATE、TIMESTAMP

reduction

输入

S

S

S

S

S

S

NS

NS

S

percentage

S

S

accuracy

S

结果

S

S

S

S

S

S

NS

NS

S

附注:不支持的子类型 DATE、TIMESTAMP

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Average

avg, mean

平均聚合运算符

aggregation

输入

S

S

S

S

S

S

S

结果

S

S

reduction

输入

S

S

S

S

S

S

S

结果

S

S

window

输入

S

S

S

S

S

S

S

结果

S

S

CollectList

collect_list

收集非唯一元素的列表,还原中不支持

aggregation

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

reduction

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

CollectSet

collect_set

收集唯一元素的集合,还原中不支持

aggregation

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

reduction

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

NS

结果

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、MAP、UDT

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Count

count

计数聚合运算符

aggregation

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

S

结果

S

reduction

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

S

结果

S

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

PS 仅 UTC 是子级 TIMESTAMP 支持的时区

S

结果

S

First

first_value, first

first 聚合运算符

aggregation

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

reduction

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

Last

last, last_value

last 聚合运算符

aggregation

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

reduction

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Max

max

最大聚合运算符

aggregation

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

NS

reduction

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

NS

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

Min

min

最小聚合运算符

aggregation

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

NS

reduction

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、STRUCT、UDT

NS

window

输入

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

PivotFirst

PivotFirst 运算符

aggregation

pivotColumn

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

NS

valueColumn

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

附注:UTC 仅支持子时间戳的时区;不支持的子类型 NULL、BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

NS

NS

NS

reduction

pivotColumn

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

NS

valueColumn

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

附注:UTC 仅支持子时间戳的时区;不支持的子类型 NULL、BINARY、CALENDAR、ARRAY、MAP、STRUCT、UDT

NS

NS

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

StddevPop

stddev_pop

聚合计算总体标准差

reduction

输入

NS

结果

NS

aggregation

输入

S

结果

S

window

输入

NS

结果

NS

StddevSamp

stddev_samp, std, stddev

聚合计算样本标准差

reduction

输入

NS

结果

NS

aggregation

输入

S

结果

S

window

输入

S

结果

S

Sum

sum

求和聚合运算符

aggregation

输入

S

S

S

S

S

S

S

结果

S

S

S

reduction

输入

S

S

S

S

S

S

S

结果

S

S

S

window

输入

S

S

S

S

S

S

S

结果

S

S

S

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

VariancePop

var_pop

聚合计算总体方差

reduction

输入

NS

结果

NS

aggregation

输入

S

结果

S

window

输入

NS

结果

NS

VarianceSamp

var_samp, variance

聚合计算样本方差

reduction

输入

NS

结果

NS

aggregation

输入

S

结果

S

window

输入

NS

结果

NS

NormalizeNaNAndZero

规范化 NaN 和零

project

输入

S

S

结果

S

S

ScalarSubquery

将仅返回一行和一列的子查询

project

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、UDT

NS

表达式

SQL 函数

描述

注释

上下文

参数/输出

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

HiveGenericUDF

Hive Generic UDF,UDF 可以选择实现 RAPIDS 加速接口以获得更好的性能

project

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

HiveSimpleUDF

Hive UDF,UDF 可以选择实现 RAPIDS 加速接口以获得更好的性能

project

param

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

结果

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

Casting#

上表未显示 cast 支持和不支持的内容。下表显示了支持的 cast 矩阵。只有当子类型可以 cast 时,才能 cast 嵌套类型(如 MAP、Struct 和 Array)。

在 GPU 上,某些字符串类型之间的 cast 不是 100% 相同,默认情况下处于禁用状态。有关这些特定案例的更多详细信息,请参阅配置。

请注意,即使 Spark 支持从一种类型 cast 到另一种类型,但这并不意味着它们都会生成可用的结果。例如,从日期 cast 到布尔值始终生成 null。这是为了 Hive 兼容性,加速器会生成相同的结果。

AnsiCast

TO

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

FROM

BOOLEAN

S

S

S

S

S

S

S

S

S

BYTE

S

S

S

S

S

S

S

S

S

SHORT

S

S

S

S

S

S

S

S

S

INT

S

S

S

S

S

S

S

S

S

LONG

S

S

S

S

S

S

S

S

S

FLOAT

S

S

S

S

S

S

S

附注:转换可能会产生不同的结果,并且需要将 spark.rapids.sql.castFloatToString.enabled 设置为 true。

S

DOUBLE

S

S

S

S

S

S

S

附注:转换可能会产生不同的结果,并且需要将 spark.rapids.sql.castFloatToString.enabled 设置为 true。

S

DATE

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

TIMESTAMP

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

STRING

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

DECIMAL

NS

S

S

S

S

S

S

S

S

NULL

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

NS

BINARY

S

S

CALENDAR

NS

NS

ARRAY

附注:数组的子类型也必须支持 cast 为所需的子类型;UTC 仅支持子时间戳的时区;不支持的子类型 CALENDAR、MAP、UDT

MAP

附注:Map 的键和值也必须支持 cast 为所需的子类型;UTC 仅支持子时间戳的时区;不支持的子类型 CALENDAR、UDT

STRUCT

附注:struct 的子项也必须支持 cast 为所需的子类型;UTC 仅支持子时间戳的时区;不支持的子类型 CALENDAR、MAP、UDT

UDT

NS

Cast

TO

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

FROM

BOOLEAN

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

BYTE

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

SHORT

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

INT

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

LONG

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

FLOAT

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

附注:转换可能会产生不同的结果,并且需要将 spark.rapids.sql.castFloatToString.enabled 设置为 true。

S

DOUBLE

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

附注:转换可能会产生不同的结果,并且需要将 spark.rapids.sql.castFloatToString.enabled 设置为 true。

S

DATE

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

TIMESTAMP

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

NS

STRING

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

DECIMAL

NS

S

S

S

S

S

S

NS

S

S

NULL

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

NS

NS

BINARY

S

S

CALENDAR

NS

NS

ARRAY

附注:数组的子类型也必须支持 cast 为字符串

附注:数组的子类型也必须支持 cast 为所需的子类型;UTC 仅支持子时间戳的时区;不支持的子类型 CALENDAR、UDT

MAP

附注:Map 的键和值也必须支持 cast 为字符串

附注:Map 的键和值也必须支持 cast 为所需的子类型;UTC 仅支持子时间戳的时区;不支持的子类型 CALENDAR、UDT

STRUCT

附注:struct 的子项也必须支持 cast 为字符串

附注:struct 的子项也必须支持 cast 为所需的子类型;UTC 仅支持子时间戳的时区;不支持的子类型 CALENDAR、MAP、UDT

UDT

NS

NS

Partitioning#

在不同任务之间传输数据时,数据会根据计划中的需求以特定方式进行分区。请注意,下面包含的类型仅适用于影响数据分区位置的行。因此,例如,如果我们在列 a 上执行 join,则数据将在 a 上进行哈希分区,但与 a 同一数据帧中的所有其他列都不会显示在该表中。它们由 ShuffleExchangeExec 的规则控制,该规则使用 Partitioning

Partition

描述

注释

Param

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

HashPartitioning

基于哈希的分区

hash_key

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、MAP、UDT

NS

RangePartitioning

范围分区

order_key

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

NS

NS

NS

PS 仅 UTC 是子级 TIMESTAMP 支持的时区;不支持的子类型 BINARY、CALENDAR、ARRAY、UDT

NS

RoundRobinPartitioning

轮循分区

SinglePartition$

单分区

Input/Output#

对于输入和输出,未明确公开支持和不支持的类型。此表尝试阐明这一点。请注意,在某些情况下,由于处理限制(例如,日期或时间戳的重新基准化)或缺少类型强制支持,某些类型可能在读取或写入中被禁用。

Format

Direction

BOOLEAN

BYTE

SHORT

INT

LONG

FLOAT

DOUBLE

DATE

TIMESTAMP

STRING

DECIMAL

NULL

BINARY

CALENDAR

ARRAY

MAP

STRUCT

UDT

Avro

Read

S

S

S

S

S

S

S

NS

NS

S

NS

NS

NS

NS

NS

NS

Write

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

CSV

Read

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

Write

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

Delta

Read

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

Write

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

HiveText

Read

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

NS

NS

NS

NS

NS

NS

Write

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

NS

NS

NS

NS

NS

NS

Iceberg

Read

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

Write

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

JSON

Read

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

NS

NS

NS

NS

Write

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

NS

ORC

Read

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

附注:UTC 仅支持子时间戳的时区;不支持的子类型 BINARY、UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 BINARY、UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 BINARY、UDT

NS

Write

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

NS

附注:UTC 仅支持子时间戳的时区;不支持的子类型 BINARY、MAP、UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 BINARY、MAP、UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 BINARY、MAP、UDT

NS

Parquet

Read

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

Write

S

S

S

S

S

S

S

S

PS 仅 UTC 是 TIMESTAMP 支持的时区

S

S

S

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

附注:UTC 仅支持子时间戳的时区;不支持的子类型 UDT

NS

Apache Iceberg Support#

对 Apache Iceberg 的支持还有其他限制。请参阅 Apache Iceberg 支持 文档。