我想在一个数据框架上使用fuzz.ratio,但我正在研究pyspark (我不能使用熊猫)。
我的职责是:
from fuzzywuzzy import fuzz我创建了这样一个数据框架:
communes_corrompues=spark.createDataFrame(
[("VILLEAINTE", "VILLEPINTE"),
('QILLEPINTE' ,'VILLEPINTE'),
('AHIENS' ,'AMIENS'),
('AMIEPS' ,'AMIENS'),
("CVRGY" ,"CERGY"),
("CERGA" ,"CERGY")
],
['corrompue', 'resultat']
)这句话不管用:
communes_corrompues_ratio = communes_corrompues.withColumn("fuzzywuzzy_ratio",
lit(fuzz.ratio(col("resultat"),col("corrompue"))))我有一个错误:
ValueError:无法将列转换为bool:在构建DataFrame布尔表达式时,请使用'&‘for 'and’、‘AC.26’for‘或'or’、'~‘表示“not”。
有人能帮我吗?或者知道怎么做?
发布于 2020-06-30 10:42:11
我会尝试使用用户定义的函数,比如:
from pyspark.sql.functions import udf
from fuzzywuzzy import fuzz
@udf("int")
def fuzz_udf(a,b):
return fuzz.ratio(a,b)
communes_corrompues_ratio.withColumn("fuzzywuzzy_ratio", fuzz_udf(col("resultat"),col("corrompue")).show()https://stackoverflow.com/questions/62654359
复制相似问题