跳到主要内容

transform:数组元素转换

速查结论

transform(expr, func) 是 Spark SQL 中用于使用 lambda 函数对数组中的每个元素进行转换的函数。

语法

transform(expr, func)

参数说明

参数类型说明
exprARRAY<T>输入的数组
funclambda转换函数,格式为 element -> expression(element, index) -> expression

Examples

> SELECT transform(array(1, 2, 3), x -> x + 1);
[2,3,4]
> SELECT transform(array(1, 2, 3), (x, i) -> x + i);
[1,3,5]

常见报错与避坑指南

  • lambda 函数中的类型一致性:lambda 函数返回值类型必须一致,否则会触发类型推导错误。
  • 使用索引参数的场景:当需要根据元素在数组中的位置进行转换时,使用双参数 lambda (x, i) -> ...,其中 i 是从 0 开始的索引。

Since: 2.4.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

备注「数据仓库技术」加入社群,每日一道大厂SQL真题

交流微信二维码

你可能还想看