将矩阵转换为 Pyspark 数据框

Posted

技术标签:

【中文标题】将矩阵转换为 Pyspark 数据框【英文标题】:Convert matrix to Pyspark Dataframe 【发布时间】:2019-03-02 17:47:20 【问题描述】:

我有一个大小为 1000*10000 的矩阵。我想将此矩阵转换为 pyspark 数据框。

谁能告诉我怎么做?这个post 有一个例子。但是我的列数很大。因此,手动分配列名会很困难。

谢谢!

【问题讨论】:

【参考方案1】:

为了创建一个 Pyspark Dataframe,你可以使用函数createDataFrame()

矩阵=([11,12,13,14,15],[21,22,23,24,25],[31,32,33,34,35],[41,42,43,44 ,45]) df=spark.createDataFrame(矩阵) df.show() +---+---+---+---+---+ | _1| _2| _3| _4| _5| +---+---+---+---+---+ | 11| 12| 13| 14| 15| | 21| 22| 23| 24| 25| | 31| 32| 33| 34| 35| | 41| 42| 43| 44| 45| +---+---+---+---+---+

正如您在上面看到的,列将自动使用数字命名。 您还可以将自己的列名传递给 createDataFrame() 函数:

columns=[ 'mycol_'+str(col) for col in range(5) ] df=spark.createDataFrame(matrix,schema=columns) df.show() +-------+-------+-------+-------+-------+ |mycol_0|mycol_1|mycol_2|mycol_3|mycol_4| +-------+-------+-------+-------+-------+ | 11| 12| 13| 14| 15| | 21| 22| 23| 24| 25| | 31| 32| 33| 34| 35| | 41| 42| 43| 44| 45| +-------+-------+-------+-------+-------+

【讨论】:

感谢您的回答。但我收到错误 rowmatrix is not iterable。

以上是关于将矩阵转换为 Pyspark 数据框的主要内容,如果未能解决你的问题,请参考以下文章

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

将列表转换为 pyspark 数据框

将 pyspark 数据框转换为 python 字典列表

将嵌套字典键值转换为 pyspark 数据框

将列表转换为 pyspark 数据框

Pyspark - 将rdd转换为数据框时数据设置为null