Spark - 在驱动程序上执行的 MLlib computeSVD

Spark - MLlib computeSVD executing on driver

我正在 运行ning RowMatrix.computeSVD 使用 scala,在 UI 中似乎只有一个阶段 "treeAggregate" 在集群上 运行ning 并且之后,当应用程序继续执行 computeSVD 时,应用程序主机的 UI 什么也不显示。所以我假设只有 "treeAggregate" 在集群上 运行ning,其余的在驱动程序上。

有没有办法让集群上的所有计算SVD到运行?驱动程序通常资源有限,计算 SVD 需要很长时间才能处理 9446*9446 的矩阵。

不幸的是,如果不修改 private API,似乎无法修改策略。

根据列数和k Spark自动调整计算策略,仅当两个数字都很大且k相对于数字较高时才使用多遍全分布式模式列数。

乍一看,您可以通过将 k 保持在 nCol / 3 and ncol / 2 之间来触发分布式计算。