如何在 Spark 中检查或保存大型矩阵到文件

Posted

技术标签:

【中文标题】如何在 Spark 中检查或保存大型矩阵到文件【英文标题】:How to inspect or save large matrix to file in Spark 【发布时间】:2017-08-22 21:21:00 【问题描述】:

我在 PySpark 中创建了一个名为 mtm 的大型块矩阵,尺寸为 85K x 85K。我想检查 Matrix 以确保它是按照我想要的方式创建的。我尝试了不同的路线,但所有路线都因退出代码 143 或 92 的内存问题而失败。

到目前为止我尝试过的选项: 1.将矩阵转换为rdd,看看第一项:

mtm_coor = mtm.toCoordinateMatrix()
mtm_rdd = mtm_coor.entries
mtm_rdd.take(1)

    保存到文本文件

    mtm_rdd.saveAsTextFile('./mtm.txt')

    将其转换为 DataFrame

    mtm_df = mtm_rdd.toDF()

我的问题是找出 PySpark 中的工作流程。如何在不耗尽内存的情况下检查大型矩阵以及如何将大型矩阵保存到文件而不遇到内存问题?

【问题讨论】:

【参考方案1】:

问题是当执行'save to text file'或'.take(5)'时,之前定义的操作都会在这一步运行。 OOM 错误意味着操作太大而无法放入内存。唯一的解决方案是寻找更高效的操作。

【讨论】:

以上是关于如何在 Spark 中检查或保存大型矩阵到文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Octave 中保存/加载大型矩阵

如何将 pandas udf 应用于大型矩阵数据框

如何以特定格式在 Julia 中保存数组或矩阵?

大型稀疏矩阵分解

如何将 Spark 消耗的最新偏移量保存到 ZK 或 Kafka 并在重启后可以读取

如何在 MATLAB 中创建和保存大型数据集?