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