str_to_map:字符串转Map
速查结论
str_to_map(text[, pairDelim[, keyValueDelim]]) 是 Spark SQL 中用于使用分隔符将文本分割成键值对并创建映射的函数。
语法
str_to_map(text[, pairDelim[, keyValueDelim]])
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| text | STRING | 要解析为键值对的文本字符串 |
| pairDelim | STRING | 键值对之间的分隔符,默认逗号 ,。被视为正则表达式 |
| keyValueDelim | STRING | 键与值之间的分隔符,默认冒号 :。被视为正则表达式 |
示例
> SELECT str_to_map('a:1,b:2,c:3', ',', ':');
{"a":"1","b":"2","c":"3"}
> SELECT str_to_map('a');
{"a":null}
常见报错与避坑指南
pairDelim和keyValueDelim都被视为正则表达式,若分隔符本身是正则特殊字符(如.、|),需使用反斜杠转义。- 当字符串中只有键而没有值(如
'a'),对应的值将设为 NULL。 - Map 中所有值均为 STRING 类型,如需数值类型需后续使用
cast转换。
Since: 2.0.1
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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