python - Spark - 将 DataFrame 转换为 RowMatrix 以有效地计算所有对相似度
问题描述
我有一个充满用户和项目之间关系的大 DataFrame,如下所示:
item1 item2
user1 0 1
user2 1 0
并希望有效地解决所有对相似性问题。
我看到如果我正在处理一个对象,我可以使用模块的columnSimilarities
方法。pyspark.mllib
RowMatrix
由于我想出的用 a 解决这个问题的每一种方法DataFrame
似乎都非常低效,我想知道RowMatrix
从我的DataFrame
.
或者,在最好的情况下,如果我遗漏了一些东西并且有更好的方法来面对 a 的所有对相似性问题DataFrame
,我很想听听。
解决方案
正如其他答案中提到的,没有办法直接将 aDataFrame
转换为 a RowMatrix
。你首先需要得到一个RDD
对象。
在 Python 上这样做:
your_rdd = your_dataframe.rdd.map(list)
your_rowmatrix = RowMatrix(your_rdd)
推荐阅读
- elasticsearch - 发现过滤器查询不在开发工具中运行
- c# - 带有连接查询的 AutoMapper 在 C# 中不起作用
- javascript - 需要在需要 javascript
- python - 检查一列是否等于另一列的更有效方法?
- mysql - 无法使用 localhost 从 vps 连接到 MySQL 数据库
- html - 有什么办法可以强制打开模态日历
- sql - 左外连接使用 Where 从右表中排除记录
- typescript - 外部 Pug 模板 - 模板语法错误 组件模板需要根元素,而不仅仅是文本
- java - Java 如何将元素添加到我的数组中?
- tfs - PublishTestResults 更新 TFS 测试