【问题标题】:pyspark | transforming list of numpy arrays into columns in dataframepyspark |将numpy数组列表转换为数据框中的列
【发布时间】:2016-11-02 22:56:05
【问题描述】:

我正在尝试采用如下所示的 rdd:

[, . . . ]

理想情况下将其转换为如下所示的数据框:

<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>

**Explode 没有帮助(它将所有内容放在同一列中)

** 我尝试在结果数据帧上使用 UDF,但我似乎无法将 numpy 数组分成单独的值。

请帮忙!

【问题讨论】:

    标签: python numpy pyspark spark-dataframe rdd


    【解决方案1】:

    试试:

    .map(lambda l : Row(*[float(x) for x in l]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2017-11-09
      • 2021-04-06
      • 2019-02-25
      • 1970-01-01
      相关资源
      最近更新 更多