我有一个字符串列和列表列的表:
app vector
facebook [1,2,3]
instagram [4,5,6]
whatsapp [7,8,9]
我想计算每两个应用程序之间的余弦相似度,所以我尝试将向量列转换为RowMatrix:
mat = RowMatrix(app_vectors_df.select("vector"))
cosine_similarities = mat.columnSimilarities()
但是,我不断得到这个错误:
pyspark.sql.utils.IllegalArgumentException: requirement failed: DataFrame must have a single vector type column
如果我尝试将列表转换为密集向量,我会得到以下错误:
TypeError: Cannot convert type <class 'pyspark.ml.linalg.DenseVector'> into Vector
我不知道该怎么做。
1条答案
按热度按时间wa7juj8i1#
方法中存在错误。请尝试转换为RDD:
对于稀疏向量:
对于密集矢量: