跳到主要内容

levenshtein:编辑距离计算

速查结论

levenshtein(str1, str2[, threshold]) 是 Spark SQL 中用于计算两个字符串之间的莱文斯坦编辑距离的函数。

语法

levenshtein(str1, str2[, threshold])

返回两个给定字符串之间的莱文斯坦距离(Levenshtein distance)。如果设置了阈值(threshold)且距离超过该阈值,则返回 -1。

参数说明

参数类型说明
str1STRING第一个字符串
str2STRING第二个字符串
thresholdINT可选。距离阈值,超过此值时返回 -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真题

交流微信二维码

你可能还想看