Liz*_*zou 1 python levenshtein-distance apache-spark-sql fuzzywuzzy pyspark
我想基于Levenshtein距离执行连接。
我有2张桌子:
Data:这是HDFS文件存储库中的CSV。列之一是Disease description,15K行。 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)
问题Data是DataFrame这就是为什么我得到以下错误:
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个字符的差异。
也许这会有所帮助。
| 归档时间: |
|
| 查看次数: |
2196 次 |
| 最近记录: |