2

私は Apache Spark と Scala を使用しています。String,Int の RDD があります

val counts =words.map(word => (word, 1)).reduceByKey((a,b) => (a + b))     

今は RDD をキーで減らしましたが、似ている単語も減らす機能をもう 1 つ追加したいと思います。

私は、レーベンシュタイン距離、ユークリッド距離、またはコサイン距離を使用することを考えました。

では、この関数の 1 つを適用して RDD を削減するにはどうすればよいでしょうか?

例:

RDD ->  (forks,12), (fork,4), (chair,15) , (table,1), (tables,11)

類似性アルゴリズムが機能することを認めて、次のような削減されたRDDを取得するにはどうすればよいですか:

RDD -> (fork,16), (table,12), (chair,15)

私は次のようなものを試しました:

counts.foldLeft(){(x,y) => 
  if(x._1.euclideanDistance(y._1) > 0.9) 
    (x,x._2+y._2) 
}
4

2 に答える 2