在PySpark中转置RowMatrix

时间:2017-11-03 18:31:22

标签: python apache-spark pyspark

您好我想知道如何在PySpark中转置RowMatrix。

leave-active

有人在Python中实现这个吗?我看过类似的帖子,但一切都在Scala中。感谢。

1 个答案:

答案 0 :(得分:4)

RowMatrix没有transpose方法。您可能需要BlockMatrixCoordinateMatrix

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.])