将函数应用于笛卡尔 RDD
Apply function to Cartesian RDDs
我正在尝试将函数应用于笛卡尔 RDD。该函数采用 from here,我不知道如何让它在笛卡尔 RDD 上运行。
val combined = rdd_valid.cartesian(rdd1)
combined.collect().foreach(a => println(a))
(abcde,abdce)
(somethin,somthing)
(afghr, decsvt)
我的第一个想法是
val newRDD = combined.map(Levenshtein.distance)
但是没用。
假设 combined
具有类型 RDD[(String, String)]
,并且 Levenshtein.distance
具有此签名:
def distance(s1:String, s2:String)
您可以按如下方式申请:
val newRDD = combined.map { case (s1, s2) => Levenshtein.distance(s1, s2) }
或者,或者:
val newRDD = combined.map(t => Levenshtein.distance(t._1, t._2))
我正在尝试将函数应用于笛卡尔 RDD。该函数采用 from here,我不知道如何让它在笛卡尔 RDD 上运行。
val combined = rdd_valid.cartesian(rdd1)
combined.collect().foreach(a => println(a))
(abcde,abdce)
(somethin,somthing)
(afghr, decsvt)
我的第一个想法是
val newRDD = combined.map(Levenshtein.distance)
但是没用。
假设 combined
具有类型 RDD[(String, String)]
,并且 Levenshtein.distance
具有此签名:
def distance(s1:String, s2:String)
您可以按如下方式申请:
val newRDD = combined.map { case (s1, s2) => Levenshtein.distance(s1, s2) }
或者,或者:
val newRDD = combined.map(t => Levenshtein.distance(t._1, t._2))