首页 > 解决方案 > 在 Pyspark 的新列中添加与特定列值对应的多个列值

问题描述

我有一个 Pyspark 数据框,如下所示:

+---------+--------+-------+------+--------------+-------------+----------+
|     NID |    Time|N1     |Gender|P1            |M1           |Occupation| and so on...
+---------+--------+-------+------+--------------+-------------+----------+
|     1   | 10 AM  |  10   |     M|     100      |    50       | Teacher  |              
|     2   | 2  PM  |  20   |     M|     200      |    50       |  Doctor  |                  
+---------+--------+-------+------+--------------+-------------+----------+

假设如果 NID 为 2,那么如何从不同的列中添加相应的值,例如:

if NID ==2 then N1(20) + P1(200) + M1(50)
result = absolute value (270) =270

我们可以使它通用,以便它可以应用于 n 列。

提前致谢!

标签: apache-sparkpysparkapache-spark-sqldata-science

解决方案


Pyspark:使用 When ,否则此问题的条件。例子 :df.withColumn("result", when(col("NID") == 2 , col("N1") + col("P1") + col("M1"))).show().


推荐阅读