【发布时间】:2026-01-08 05:20:06
【问题描述】:
我之前发布了一个关于 900 万行和 85K 列的坐标矩阵乘法的问题。 Errors for block matrix multiplification in Spark
但是,我在 DataProc 上遇到了内存不足的问题。我尝试为集群配置高内存核心,但没有成功。
我正在阅读这篇文章,并认为它可能对我的情况有所帮助: https://www.balabit.com/blog/scalable-sparse-matrix-multiplication-in-apache-spark/ 但是,他们提供的解决方案是在我不熟悉的 Scala 中提供的。有人可以将此代码翻译成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)
}
【问题讨论】:
标签: python scala pyspark matrix-multiplication google-cloud-dataproc