我试图采取一个rdd,看起来像:
[<1x24000]型稀疏矩阵以压缩稀疏行格式存储10个元素>,…)
,理想情况下将其转换为如下的数据框架:
<code>
+-----------------+
| A | B | C |
+-----------------+
| 1.0 | 0.0 | 0.0 |
+-----+-----+-----+
| 1.0 | 1.0 | 0.0 |
+-----+-----+-----+
</code>
然而,我一直收到这个:
<code>
+---------------+
| _1|
+---------------+
|[1.0, 0.0, 0.0]|
+---------------+
|[1.0, 1.0, 0.0]|
+---------------+
</code>
我有最糟糕的时间,因为每一行都充满了numpy数组。
我使用以下代码从rdd:
创建数据框架<code>res.flatMap(lambda x: np.array(x.todense())).map(list).map(lambda l : Row([float(x) for x in l])).toDF()</code>
**爆炸没有帮助(它把所有东西放在同一列)
**我尝试在结果数据帧上使用UDF,但我似乎无法将numpy数组分离为单个值。
请帮忙!
尝试:
.map(lambda l : Row(*[float(x) for x in l]))