levenshtein距离算法

webghufk  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(303)

我从hadoop生态系统开始,我面临一些问题,需要你的帮助。
我有两个hdfs文件,需要执行levenshtein distance,第一个列的一组列与第二个列的另一组列之间的距离。
这个过程每天都要执行相当大的数据量(第一个文件中有1.5亿行,第二个文件中有1100万行)。
我会很感激有一些指导(代码示例,参考资料等),我可以从hdfs读取我的两个文件执行levenshtein距离(使用spark?)如所述,并保存在第三个hdfs文件的结果。
事先非常感谢。

kzmpq1sx

kzmpq1sx1#

我猜你有csv文件,所以你可以直接读取Dataframe:

val df1 =  spark.read.option("header","true").csv("hdfs:///pathtoyourfile_1")

这个 spark.sql.functions 模块conatins deflevenshtein(l: Column, r: Column): Column 函数,因此如果要传递一组可以接受的列,则需要作为参数传递字符串类型的dataframe列 concat('col1,'col2,..) 函数来连接多个列并将它们传递给上一个函数。如果有2个或更多的Dataframe,则必须将它们合并到一个Dataframe中,然后执行距离计算。最后,您可以使用 df.write.csv("path")

相关问题