gpt4 book ai didi

matrix - Spark RDD 到 Matrix

转载 作者:行者123 更新时间:2023-12-05 07:52:01 26 4
gpt4 key购买 nike

我有一个像这样的 RDD:

(A,AA,1)
(A,BB,0)
(A,CC,0)
(B,AA,2)
(B,BB,1)
(B,CC,4)

我想将其转换为以下 RRD:

([1,0,0],[2,1,4]) 

顺序对我来说很重要,因为主要建议是使用 RowMatrix 将第二个 RDD 转换为矩阵。

最佳答案

你需要注意措辞,当你要求矩阵时,你的意思是像 spark.mllib.matrix 吗?如果是这样,您将需要按照非常具体的说明来创建一个。但是,在我看来,您的问题可以通过更简单的方式解决。只需将 zipWithIndexgroupBy

一起使用
//Here is how I see it
val test = sc.parallelize(Array(("A","AA",1),("A","BB",0),("A","CC",0),("B","AA",2),("B","BB",1),("B","CC",4))).zipWithIndex
val grouptest = test.groupBy(_._1._1).map(x=>(Vectors.dense(x._2.map(y=>(y._2,y._1._3)).toArray.sortBy(_._1).map(z=>z._2.toDouble))))

在您的示例中,您似乎希望将结果作为向量?所以我使用了 spark 的 Vector(顺便说一下,它只允许 Doubles)。

结果如下: [1.0,0.0,0.0] [2.0,1.0,4.0]

关于matrix - Spark RDD 到 Matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34156472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com