将带有嵌套数组的spark列转换为numpy数组?

ijxebb2r  于 2021-07-14  发布在  Spark
关注(0)|答案(0)|浏览(213)

类似的问题也存在,但没有一个能解决这个具体问题。
我有一个sparkDataframe,有两列,一个是字符串,另一个是嵌套数组。当我打电话的时候 to_Pandas() 关于数据,我最后得到了下面的pandas数据框,到目前为止还不错。

msn         Input_Tensor
0   50039   [[-0.6091487589711975, -0.5883706475155377, 0....
1   50039   [[-0.6091487589711975, -0.6133920407173519, 0....
2   50039   [[-0.6091487589711975, -0.5724479427507467, 0....
3   50039   [[-0.6091487589711975, -0.5997440080618168, 0....
4   50039   [[-0.6091487589711975, 0.5057466370365229, 0.0...
5   50039   [[-0.6091487589711975, -0.5201304842378623, 0....
6   50039   [[-0.6091487589711975, -0.6111173686080961, 0....
7   50039   [[-0.6091487589711975, -0.5929199917340493, 0....
8   50039   [[-0.6091487589711975, -0.583821303297026, 0.0...
9   50039   [[-0.5537568928918258, 1.0630413038042044, 0.0...

除了。。。我找不到一个方法来转换 Input_Tensor 列为 numpy array . Dataframe有519行,每个嵌套数组具有相同的维度 (1500, 77) .
通过做 df['Input_Tensor'].values 或者 df['Input_Tensor'].to_numpy() 我希望得到一个形状如下的numpy数组: (519, 1500, 77) ,但我得到的却是: (519,) 这是我打过电话后的数据 to_numpy :

array([array([-6.09148759e-01, -5.88370648e-01,  0.00000000e+00, -6.15889840e-01,
       -5.73856948e-01, -2.73469677e-01, -1.71482978e-02, -5.95957445e-01,

而2d numpy数组如下所示:

array([[0., 0.],
       [0., 0.]])

我错过了什么?
编辑:
最终,需要将数据输入到tensorflow数据集api中。但是当我使用上面列出的结构化方法时,我得到了以下错误:

tf.data.Dataset.from_tensor_slices(df)

ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题