我从Hadoop生态系统开始,我面临一些问题,需要你的帮助。
我有两个HDFS文件,需要在第一组列和第二组列之间执行Levenshtein。
这个过程将每天执行相当多的数据(第一个文件有150M行,第二个文件有11M行)。
我希望有一些指导(代码示例,参考资料等),告诉我如何从HDFS读取我的两个文件执行Levenshtein距离(使用Spark?),并将结果保存在第三个HDFS文件上。
提前谢谢你。
我猜你有csv文件,所以你可以直接读取到数据帧:
val df1 = spark.read.option("header","true").csv("hdfs:///pathtoyourfile_1")
spark.sql.functions
模块包含deflevenshtein(l: Column, r: Column): Column
函数,所以你需要传递一个参数-字符串类型的dataframe列,如果你想传递一组列,你可以用concat('col1,'col2,..)
函数连接多个列并将它们传递给前一个函数。如果您有2个或更多的数据帧,您必须将它们连接到一个数据帧中,然后执行距离计算。最后,您可以使用df.write.csv("path")