1. 在DataFrame中使用

使用 udf 装饰器

  1. from pyspark.sql.functions import udf
  2. from pyspark.sql.types import ArrayType,StringType,IntegerType,DoubleType,FloatType,BooleanType
  3. # 余弦相似度计算
  4. from scipy import spatial
  5. @udf(returnType=FloatType())
  6. def sim(x,y):
  7. return float(1-spatial.distance.cosine(x, y))

2. 在sql中使用

使用注册方式

  1. def interest(col):
  2. result = -1 if col==0 else 1
  3. return result
  4. spark.udf.register("interest", interest)