向现有的pyspark数据框添加一列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向现有的pyspark数据框添加一列相关的知识,希望对你有一定的参考价值。

我有一个清单lists=[0,1,2,3,5,6,7]。订单不是顺序的。我有一个9列的pyspark数据框。

+-------------------+--------+--------+--------+--------+--------+--------+---------------+-----+----+
|               date|ftt (°c)|rtt (°c)|fbt (°c)|rbt (°c)|fmt (°c)|rmt (°c)|fmhhumidityunit|index|Diff|
+-------------------+--------+--------+--------+--------+--------+--------+---------------+-----+----+
|2019-02-01 05:29:47|     NaN|     NaN|     NaN|     NaN|     NaN|     NaN|            NaN|    0| NaN|
|2019-02-01 05:29:17|     NaN|     NaN|     NaN|     NaN|     NaN|    NaN|           NaN|    1| NaN |

我需要将列表作为列添加到现有数据框中。我的列表顺序不正确,所以我无法使用udf。有办法吗?请帮帮我我希望它像这样

+-------------------+--------+--------+--------+--------+--------+--------+---------------+-----+----+------+
|               date|ftt (°c)|rtt (°c)|fbt (°c)|rbt (°c)|fmt (°c)|rmt (°c)|fmhhumidityunit|index|Diff|lists |
+-------------------+--------+--------+--------+--------+--------+--------+---------------+-----+----+-------+
|2019-02-01 05:29:47|     NaN|     NaN|     NaN|     NaN|     NaN|     NaN|            NaN|    0| NaN|0     |
|2019-02-01 05:29:17|     NaN|     NaN|     NaN|     NaN|     NaN|     NaN|           NaN|    1| NaN |1     |
答案

您可以join两个df,如下所示:

df2 = spark.createDataFrame()
df= df.join(df2, on=['index']).drop('index')

df2将包含您要添加到主df中的列。

以上是关于向现有的pyspark数据框添加一列的主要内容,如果未能解决你的问题,请参考以下文章

向现有的 pandas DF 添加名称(字符串)列

向现有的本地化应用程序添加新语言

pyspark 数据框如果不存在则添加一列

根据间隔pyspark中的记录数增加一列

从另一个 DataFrame 添加一列

PySpark 从 TimeStampType 列向 DataFrame 添加一列