Spark 文本按jaccard或编辑距离join的速度优化,join时match右边一个就break

网友投稿 870 2022-11-15

Spark 文本按jaccard或编辑距离join的速度优化,join时match右边一个就break

Spark 文本按jaccard或编辑距离join的速度优化,join时match右边一个就break

只能先collect小表数据再broadcast, 然后再每个map里match之后break, 速度比这个快:

def jaccardDistance = udf { (str1: String, str2: String) => var result = false val set1: Set[Char] = str1.toSet val set2: Set[Char] = str2.toSet val intersectSize = set1.intersect(set2).size.toFloat val unionSize = set1.union(set2).size.toFloat val value = intersectSize / unionSize if(value > threshold){ result = true } if(value == 1.0){ result = false } result } val resultDF = todoDataDF.join(broadcast(sourceDF), jaccardDistance(sourceDF("string_col"),todoDataDF("string_col")), "left")

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:自己实现LSTM和GRU内部的代码
下一篇:theano concatenate 实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~