支持的操作符#
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 之类的聚合操作可能发生在 aggregation
、reduction
或 window
上下文中。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,其中 A
和 B
是单独的表或数据帧,则 +
和 >=
操作不能作为单独的独立内核运行,因为它是在 A
和 B
中的行的组合上完成的。相反,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 |
返回具有给定 jsonStr 和 schema 的 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 支持 文档。