Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Spark-将数据帧转换为行矩阵以有效计算所有对的相似性_Python_Apache Spark_Pyspark_Apache Spark Mllib_Recommendation Engine - Fatal编程技术网

Python Spark-将数据帧转换为行矩阵以有效计算所有对的相似性

Python Spark-将数据帧转换为行矩阵以有效计算所有对的相似性,python,apache-spark,pyspark,apache-spark-mllib,recommendation-engine,Python,Apache Spark,Pyspark,Apache Spark Mllib,Recommendation Engine,我有一个大的数据框架,里面充满了用户和项目之间的关系,如下所示: item1 item2 user1 0 1 user2 1 0 并希望有效地解决所有对的相似性问题 我发现,如果使用RowMatrix对象,我可以使用pyspark.mllib模块的column方法 由于我用DataFrame解决这个问题的每一种方法似乎都非常低效,我想知道从我的DataFrame获得RowMatrix的最佳方法 或者,在最好的情况下,如果我遗漏了什么

我有一个大的数据框架,里面充满了用户和项目之间的关系,如下所示:

        item1  item2
user1       0      1
user2       1      0
并希望有效地解决所有对的相似性问题

我发现,如果使用
RowMatrix
对象,我可以使用
pyspark.mllib
模块的
column
方法

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


或者,在最好的情况下,如果我遗漏了什么,并且有更好的方法来解决数据帧
的所有对相似性问题,我很乐意听到它。

在读了一点关于
行矩阵
的内容后,看起来您需要将
数据帧
转换为
RDD

为此,您可以使用:

val rows = df.content.rdd.map{ case row =>
Vectors.dense(row.toSeq.toArray.map{
    x => x.asInstanceOf[Integer]
  })
}.collect
然后在代码中使用


我希望这会有所帮助。

如其他答案中所述,无法直接将
数据帧
转换为
行矩阵
。首先需要获得一个
RDD
对象

要在Python上执行此操作,请执行以下操作:

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

我可以展示获取
行矩阵
的方法,但是如果你能用一个例子来解释你想解决的问题,我可以尝试通过
数据帧
本身来解决。你好,Mayank,谢谢你的回答。想知道您获取
行矩阵
的方法,即使您通过
数据帧
解决了我的问题。无论如何,我想要的是得到与我的
数据帧中的每一行相似的顶部行。我想使用Spark实现的方法,但只能与
RowMatrix
一起使用:有输出形状的示例吗?这是sound Scala