首页 > 解决方案 > 变量等于pyspark上的doublemetaphone

问题描述


我想在 **pyspark** 上的数据集上使用函数 **"doublemetaphone"**。
期望结果是一个布尔值:TRUE 或 FALSE。
但是 *@udf("bool")* 不起作用,还有其他方法吗?
from metaphone import doublemetaphone

@udf("bool") 
def udf_doublemetaphone(a,b):
  return doublemetaphone(a)== doublemetaphone(b)

data_set_doublemetaphone = (data_set.withColumn("doublemetaphone", 
                                                   udf_doublemetaphone(col("A"),col("B")))) ```

标签: pysparkbooleanmetaphone

解决方案


我找到了!
这是@udf(BooleanType())
所以你可以这样使用: rom metaphone import doublemetaphone

@udf(BooleanType()) 
def udf_doublemetaphone(a,b):
 return doublemetaphone(a)== doublemetaphone(b)

data_set_doublemetaphone = (data_set.withColumn("doublemetaphone", 
                                                  udf_doublemetaphone(col("A"),col("B")))) ```

推荐阅读