转换函数 (UDTF)

用户定义的转换函数 (UDTF) 可用于将数据表转换成其他表。该函数读取一个或多个参数(视为数据行),并返回包含一列或多列的零行或多行数据。UDTF 可以生成任意数量的行作为输出。但是,输出的每个行必须是完整的。在未向每个列添加值的情况下前进到下一行会生成不正确的结果。

输出表的架构并不需要与输入表的架构相对应,它们可以完全不同。UDTF 可为每行输入返回任意行输出。

UDTF 只能用在仅包含 UDTF 调用和所需 OVER 子句的 SELECT 列表中。多阶段 UDTF 可以使用分区列 (PARTITION BY),但其他 UDTF 不能。

在语句中与 GROUP BY 和 ORDER BY 结合使用时,UDTF 在 GROUP BY 之后运行,但在最后一个 ORDER BY 之前运行。ORDER BY 子句可能仅包含窗口分区子句中的列或表达式(请参阅窗口分区)。

UDTF 最多可读取 9800 个参数(输入列)。尝试向 UDTF 传递更多参数会返回错误。