pyspark:将稀疏局部矩阵转换为 RDD

Posted

技术标签:

【中文标题】pyspark:将稀疏局部矩阵转换为 RDD【英文标题】:pyspark: Convert sparse local matrix to an RDD 【发布时间】:2015-06-16 20:24:56 【问题描述】:

我有一个稀疏矩阵(我从 python 函数接收),我想将其转换为 numpy 矩阵。 numpy 矩阵不适合本地 RAM,我想将它放入 pySpark 中的 RDD 中。我对 Spark 不太熟悉,所以我不知道如何将本地 spase 矩阵加载到 RDD 中。

【问题讨论】:

我认为没有简单的方法,pyspark 中没有 sparse matrix。您可以将矩阵写入文件,参见this SO question 和this numpy cookbook。然后你应该在带有this 之类的数据帧中读取它,但是从sparse matrix 转换格式。希望对您有所帮助。 刚刚看到新版本的 pyspark (1.4.1) 和添加的稀疏矩阵。但我已经找到了解决办法。我不想保存到文件然后再次阅读。我转换为一个 COO 稀疏矩阵,它可以在本地给出稀疏矩阵的简单表示(带值的坐标),并将坐标与数据并行化。通过这种方式,我可以按行映射和聚合数据(这部分适用于我需要的数据)。无论如何,稀疏矩阵支持也应该起作用。 感谢更新! 【参考方案1】:

这个问题是用“pre 1.4.1 Spark 知识”提交的。显然稀疏矩阵已添加到 spark 库中。 Spark SparseMatrix

【讨论】:

以上是关于pyspark:将稀疏局部矩阵转换为 RDD的主要内容,如果未能解决你的问题,请参考以下文章

在 PySpark 中将 Python Dict 转换为稀疏 RDD 或 DF

如何在pyspark中读取和写入坐标矩阵到文件

spark 创建稀疏向量和矩阵

如何将 numpy.matrix 或数组转换为 scipy 稀疏矩阵

如何将“SciPy 稀疏矩阵”转换为“NumPy 矩阵”?

将稀疏矩阵转换为熊猫数据框