将numpy(NxM)矩阵转换为(Nx1)pyspark数据帧,其中包含N行和1列数组数据

将numpy(NxM)矩阵转换为(Nx1)pyspark数据帧,其中包含N行和1列数组数据,pyspark,Pyspark,我想从NxM numpy矩阵制作一个pyspark数据帧。此数据帧应该有N行,但只有1列包含大小为(1xM)的数组数据 我已经尝试将NxM numpy矩阵转换为数据帧。但是,原始矩阵的大小很大(1Mx2000),需要进一步的下游操作,只有在为numpy矩阵创建pyspark数据帧时,我才能工作 比如说 我想转换下面的矩阵 m=np.array([[1,2],[11,22],[111222]) 一个pyspark数据帧,看起来像 +-----+----------+ |索引|数组| +-----

我想从NxM numpy矩阵制作一个pyspark数据帧。此数据帧应该有N行,但只有1列包含大小为(1xM)的数组数据

我已经尝试将NxM numpy矩阵转换为数据帧。但是,原始矩阵的大小很大(1Mx2000),需要进一步的下游操作,只有在为numpy矩阵创建pyspark数据帧时,我才能工作

比如说

我想转换下面的矩阵

m=np.array([[1,2],[11,22],[111222])
一个pyspark数据帧,看起来像

+-----+----------+
|索引|数组|
+-----+----------+
|    0|    [1, 2]|
|    2|  [11, 22]|
|    3|[111, 222]|
+-----+----------+
如前所述,您可以使用
枚举
获得所需的结果:

m=np.array([[1,2],[11,22],[111,222])
df=spark.createDataFrame(枚举(m.tolist()),[“索引”,“数组”])
df.show()
#+-----+----------+
#|索引|数组|
#+-----+----------+
#|    0|    [1, 2]|
#|    1|  [11, 22]|
#|    2|[111, 222]|
#+-----+----------+
以及相应的模式:

df.printSchema()
#根
#|--索引:long(nullable=true)
#|--array:array(nullable=true)
#| |--元素:long(containsnall=true)
如前所述,您可以使用
枚举
获得所需的结果:

m=np.array([[1,2],[11,22],[111,222])
df=spark.createDataFrame(枚举(m.tolist()),[“索引”,“数组”])
df.show()
#+-----+----------+
#|索引|数组|
#+-----+----------+
#|    0|    [1, 2]|
#|    1|  [11, 22]|
#|    2|[111, 222]|
#+-----+----------+
以及相应的模式:

df.printSchema()
#根
#|--索引:long(nullable=true)
#|--array:array(nullable=true)
#| |--元素:long(containsnall=true)

spark.createDataFrame(enumerate(m.tolist()),[“index”,“array”])之类的东西应该可以工作。可能需要先将
m
中的值映射到不同的数据类型。相当确定的东西是
spark.createDataFrame(enumerate(m.tolist()),[“index”,“array”]))
应该可以工作。可能必须首先将
m
中的值映射到不同的数据类型。