transform_keys:转换Map键
速查结论
transform_keys(expr, func) 是 Spark SQL 中用于使用 lambda 函数对映射中的每个键进行转换的函数。
语法
transform_keys(expr, func)
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| expr | MAP | 要进行键转换的映射(Map)对象 |
| func | LAMBDA | 接收 (k, v) 两个参数的 lambda 函数,返回转换后的新键 |
示例
> SELECT transform_keys(map_from_arrays(array(1, 2, 3), array(1, 2, 3)), (k, v) -> k + 1);
{2:1,3:2,4:3}
> SELECT transform_keys(map_from_arrays(array(1, 2, 3), array(1, 2, 3)), (k, v) -> k + v);
{2:1,4:2,6:3}
常见报错与避坑指南
- 如果 lambda 函数对不同的键返回相同的值,后面的键值对会覆盖前面的,因为 Map 的键必须唯一。
- 转换后的键类型会自动推断,若需要特定的键类型,可在 lambda 中使用
cast显式指定。 - lambda 函数必须接受恰好两个参数
(k, v),分别表示当前键和当前值,参数数量不匹配会报错。
Since: 3.0.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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