transform_values:转换Map值
速查结论
transform_values(expr, func) 是 Spark SQL 中用于使用 lambda 函数对映射中的每个值进行转换的函数。
语法
transform_values(expr, func)
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| expr | MAP | 要进行值转换的映射(Map)对象 |
| func | LAMBDA | 接收 (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真题
