如何在没有udf的情况下计算Dataframe中的向量?

ecfsfe2w  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(241)

我用的是PySpark2.4。

df.printSchema()
root
 |-- word: string (nullable = true)
 |-- vector: vector (nullable = true)
 |-- vector2: vector (nullable = true)

我想计算向量之间的相似性
我看过一些文章,比如如何计算pyspark中两个向量的余弦相似性?

def _get_sim(vector: Vector, vector2: Vector):
    v1 = DenseVector(vector.toArray())
    v2 = DenseVector(vector2.toArray())
    return float(1 - (v1.dot(v2))/(v1.norm(2)*v2.norm(2)))

get_sim = udf(_get_sim, DoubleType())

df = df.withColumn('sim', get_sim(col('vector'), col('vector2')))

它是有效的,但我很好奇有没有另一种方法来计算没有自定义项的向量。
谢谢你阅读这个问题。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题