Spark 1.5.0 で追加された関数の中にレーベンシュタイン距離があったので簡単に確認してみました
半備忘です
レーベンシュタイン距離とは?
簡単に言うと「単語の類似度」を図るロジックです
単語Aを単語Bにするまで何回操作が必要かという回数を表します
似た単語なんかを探すときによく使うロジックですね
Sparkソースコード
詳しくは↓のPRを
SparkSQL関数で使うのが主になるのかなあと
https://issues.apache.org/jira/browse/SPARK-8270
Spark-shell上での確認
marioとmaro, sevrとserviceそれぞれの単語間距離を測りました
いい感じです
scala> Seq(("mario", "maro"), ("sevr", "service")).toDF("l", "r").selectExpr("levenshtein(l, r)").show()
+-----------------+
|'levenshtein(l,r)|
+-----------------+
| 1|
| 4|
+-----------------+