跳到主要内容

transform_values:转换Map值

速查结论

transform_values(expr, func) 是 Spark SQL 中用于使用 lambda 函数对映射中的每个值进行转换的函数。

语法

transform_values(expr, func)

参数说明

参数类型说明
exprMAP要进行值转换的映射(Map)对象
funcLAMBDA接收 (k, v) 两个参数的 lambda 函数,返回转换后的新值

示例

> SELECT transform_values(map_from_arrays(array(1, 2, 3), array(1, 2, 3)), (k, v) -> v + 1);
{1:2,2:3,3:4}
> SELECT transform_values(map_from_arrays(array(1, 2, 3), array(1, 2, 3)), (k, v) -> k + v);
{1:2,2:4,3:6}

常见报错与避坑指南

  • transform_values 仅修改值,键保持不变。如需同时修改键,使用 transform_keys
  • 转换后的值类型会自动推断,若 lambda 返回不同类型(如有时返回 INT、有时返回 STRING),Spark 会尝试找公共父类型。
  • lambda 函数必须接受恰好两个参数 (k, v),分别表示当前键和当前值。

Since: 3.0.0

📱关注公众号

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

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

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

交流微信二维码

你可能还想看