微前端架构如何改变企业的开发模式与效率提升
912
2022-11-15
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~