首页 > 解决方案 > Spark - 将 DataFrame 转换为 RowMatrix 以有效地计算所有对相似度

问题描述

我有一个充满用户和项目之间关系的大 DataFrame,如下所示:

        item1  item2
user1       0      1
user2       1      0

并希望有效地解决所有对相似性问题。

我看到如果我正在处理一个对象,我可以使用模块的columnSimilarities方法。pyspark.mllibRowMatrix

由于我想出的用 a 解决这个问题的每一种方法DataFrame似乎都非常低效,我想知道RowMatrix从我的DataFrame.

或者,在最好的情况下,如果我遗漏了一些东西并且有更好的方法来面对 a 的所有对相似性问题DataFrame,我很想听听。

标签: pythonapache-sparkpysparkapache-spark-mllibrecommendation-engine

解决方案


正如其他答案中提到的,没有办法直接将 aDataFrame转换为 a RowMatrix。你首先需要得到一个RDD对象。

在 Python 上这样做:

your_rdd = your_dataframe.rdd.map(list)
your_rowmatrix = RowMatrix(your_rdd)

推荐阅读