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

Posted

技术标签:

【中文标题】如何在pyspark中读取和写入坐标矩阵到文件【英文标题】:How to read and write coordinateMatrix to a file in pyspark 【发布时间】:2018-05-17 07:08:56 【问题描述】:

我在 pyspark 中有一个非常稀疏的数据框,我将这个数据框转换为 CoordinatedMatrix。现在我想将这个矩阵保存在 hdfs 上,以便以后重用它来训练我的模型。不幸的是,我没有找到任何解决方案。有什么建议吗?

示例:

>> mat.entries.collect()
[MatrixEntry(1, 0, 1.0), MatrixEntry(1, 1, 1.0), MatrixEntry(1, 2, 2.0),MatrixEntry(1, 3, 1.0), MatrixEntry(2, 0, 2.0), MatrixEntry(2, 1, 1.0), MatrixEntry(2, 2, 3.0), MatrixEntry(2, 3, 5.0)]

【问题讨论】:

【参考方案1】:

这里没有推荐的格式,CoordinateMatrix 的结构非常简单,所以你可以选择几乎任何东西,例如 Parquet:

mat.entries.toDF().write.parquet(path) 

后来阅读:

CoordinateMatrix(spark.read.parquet(path).rdd.map(lambda row: MatrixEntry(*row)))

【讨论】:

以上是关于如何在pyspark中读取和写入坐标矩阵到文件的主要内容,如果未能解决你的问题,请参考以下文章

PySpark S3 文件读取性能考虑

Pyspark:将df写入具有特定名称的文件,绘制df

在 PySpark 中写入镶木地板的问题

python中使用pyspark 读取和整理日志数据并将数据写入到es中去

如何在使用转义或引号在pyspark中的文件中写入数据帧时获得完全匹配? [复制]

如何使用 JDBC 源在 (Pyspark?