您好我想知道如何在PySpark中转置RowMatrix。
leave-active
有人在Python中实现这个吗?我看过类似的帖子,但一切都在Scala中。感谢。
答案 0 :(得分:4)
RowMatrix没有transpose
方法。您可能需要BlockMatrix或CoordinateMatrix。
from pyspark.mllib.linalg.distributed import CoordinateMatrix, MatrixEntry
cm = CoordinateMatrix(
mat.rows.zipWithIndex().flatMap(
lambda x: [MatrixEntry(x[1], j, v) for j, v in enumerate(x[0])]
)
)
cm.toRowMatrix().rows.first().toArray()
# array([ 1., 2.])
cm.transpose().toRowMatrix().rows.first().toArray()
# array([ 1., 3.])