我有一个大的 DataFrame,其中充满了用户和项目之间的关系,如下所示:
item1 item2
user1 0 1
user2 1 0
并且想要有效地解决所有对的相似性问题。
我发现如果我使用 RowMatrix
对象,我可以使用 pyspark.mllib
模块的 columnSimilarities
方法。
由于我想出的使用 DataFrame
解决此问题的每种方法似乎效率都很低,我想知道获得 RowMatrix
的最佳方法来 self 的DataFrame
。
或者,在最好的情况下,如果我遗漏了一些东西,并且有更好的方法来使用DataFrame
来面对所有对的相似性问题,我很想听听。
最佳答案
正如其他答案中提到的,无法直接将 DataFrame
转换为 RowMatrix
。您首先需要获取一个RDD
对象。
要在 Python 上执行此操作:
your_rdd = your_dataframe.rdd.map(list)
your_rowmatrix = RowMatrix(your_rdd)
关于python - Spark - 将 DataFrame 转换为 RowMatrix 以有效计算所有对的相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52992734/