跳到主要内容

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

微信公众号二维码关注公众号
交流微信二维码加群交流
赞赏二维码赞赏

你可能还想看