levenshtein:编辑距离计算
速查结论
levenshtein(str1, str2[, threshold]) 是 Spark SQL 中用于计算两个字符串之间的莱文斯坦编辑距离的函数。
语法
levenshtein(str1, str2[, threshold])
返回两个给定字符串之间的莱文斯坦距离(Levenshtein distance)。如果设置了阈值(threshold)且距离超过该阈值,则返回 -1。
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| str1 | STRING | 第一个字符串 |
| str2 | STRING | 第二个字符串 |
| threshold | INT | 可选。距离阈值,超过此值时返回 -1 |
示例
> SELECT levenshtein('kitten', 'sitting');
3
> SELECT levenshtein('kitten', 'sitting', 2);
-1
常见报错与避坑指南
- threshold 超限返回 -1:当设置阈值且实际编辑距离超过阈值时,函数返回 -1 而非实际距离。在业务逻辑中需要区分 -1 是"超过阈值"还是"错误"的情况。
- 编辑距离区分大小写:
levenshtein('ABC', 'abc')返回 3,因为每个字符的大小写差异各算一次编辑操作。
Since: 1.5.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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