Вычислить собственные векторы большой разреженной матрицы? - PullRequest
0 голосов
/ 14 мая 2019

У меня есть кадр данных Spark:

df.show()

+--------+--------+------------+
|     i  |     j  |     value
+--------+--------+------------+
|     0.0|     0.0|      -516.0|
|     0.0|     2.0| 0.771516749|

У df есть 1M строк. Матрица очень разреженная, так как у меня ~ 100K i и ~ 100K j . Так в среднем 10 значений по i.

При вычислении SVD произошла ошибка:

cmat = CoordinateMatrix(df.rdd)
svd = cmat.computeSVD(100)

Out >>

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-17-a82b41a6869f> in <module>()
----> 1 svd = cmat.computeSVD(100)

AttributeError: 'CoordinateMatrix' object has no attribute 'computeSVD'

Итак, я попытался преобразовать в RowMatrix:

rowmat = cmat.toRowMatrix()

Но на кластере потребовалось 200Go, что не очень хорошо.

Как вычислить собственные значения большой разреженной матрицы в Spark (Python)?

...