Pyspark levenshtein连接错误

Liz*_*zou 1 python levenshtein-distance apache-spark-sql fuzzywuzzy pyspark

我想基于Levenshtein距离执行连接。

我有2张桌子:

  1. Data:这是HDFS文件存储库中的CSV。列之一是Disease description,15K行。
  2. df7_ct_map:我从Hive呼叫的表格。列之一是Disease Indication,20K行。

我试图通过将每个描述与适应症(它们是疾病的文字描述)相匹配来连接两个表。理想情况下,它们必须相同,但是如果两个文本都不相同,我希望选择包含最大数量的常用单词的匹配文本。

from pyspark.sql.functions import levenshtein  
joinedDF = df7_ct_map.join( Data, levenshtein(df7_ct_map("description"), 
Data("Indication")) < 3)
joinedDF.show(10)
Run Code Online (Sandbox Code Playgroud)

问题DataDataFrame这就是为什么我得到以下错误:

TypeError: 'DataFrame' object is not callable
TypeError                                 Traceback (most recent call last)
in engine
----> 1 joinedDF = df7_ct_map.join( Data, levenshtein(df7_ct_map("description"), Data("Indication")) < 3)

TypeError: 'DataFrame' object is not callable
Run Code Online (Sandbox Code Playgroud)

一些忠告?我可以使用Fuzzywuzzy软件包吗?如果是这样,怎么办?

小智 5

代替使用此方法加入其他方法如下

newDF=df1.join(df2,levenshtein(df1['description'], df2['description']) < 3)
Run Code Online (Sandbox Code Playgroud)

连接2个数据帧时,最多允许2个字符的差异。

也许这会有所帮助。