Spark 上的 Levenshtein 距离算法

Levenshtein distance algorithm on Spark

我刚开始接触 Hadoop 生态系统,遇到一些问题需要您的帮助。

我有两个 HDFS 文件,需要在第一个文件的一组列与第二个文件的另一组列之间执行 Levenshtein 距离。

每天都会执行此过程,数据量相当大(第一个文件中有 150M 行,第二个文件中有 11M 行)。

如果能提供一些指导(代码示例、参考资料等),说明如何从 HDFS 中读取我的两个文件并执行 Levenshtein 距离(使用 Spark?),并将结果保存在第三个 HDFS 文件中,我将不胜感激。

非常感谢您。

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

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

spark.sql.functions模块conatins deflevenshtein(l: Column, r: Column): Column函数所以需要传入参数-dataframe列,String类型,如果要传一组列可以取concat('col1,'col2,..) 函数连接多个列并将它们传递给上一个函数。如果您有 2 个或更多数据框,则必须将它们合并为一个数据框,然后执行距离计算。最后,您可以使用 df.write.csv("path")

将结果保存到 csv