0
これまでに、900万行と85K列の座標行列乗算に関する質問を掲載しました。 Errors for block matrix multiplification in SparkPySpark RDDスカラからPythonへのスパース行列の乗算
しかし、私はDataProcのメモリ不足の問題に遭遇しました。私は高いメモリコアを持つクラスタを構成しようとしましたが、運がありません。
私はこの記事を読んで、それは私の場合には役立つかもしれないと思っています: https://www.balabit.com/blog/scalable-sparse-matrix-multiplication-in-apache-spark/ しかし、彼らは提供ソリューションは、私は精通していないですスカラ座、です。このコードをPythonに変換するのに十分親切な人はいますか?本当にありがとう!
def coordinateMatrixMultiply(leftMatrix: CoordinateMatrix, rightMatrix: CoordinateMatrix):
CoordinateMatrix = {
val M_ = leftMatrix.entries.map({ case MatrixEntry(i, j, v) => (j, (i, v)) })
val N_ = rightMatrix.entries.map({ case MatrixEntry(j, k, w) => (j, (k, w)) })
val productEntries = M_
.join(N_)
.map({ case (_, ((i, v), (k, w))) => ((i, k), (v * w)) })
.reduceByKey(_ + _)
.map({ case ((i, k), sum) => MatrixEntry(i, k, sum) })
new CoordinateMatrix(productEntries)
}