pyspark:一起计算特定列

n7taea2i  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(256)

我有一个sparkDataframe,如下所示:

+---+----+---+---+
| a | b  | c | d |
+---+----+-------+
|13 | 43 | 67| 3 |
+---+----+---+---+

是否可以选择特定的列一起计算以产生以下结果?

+----+----+---+---+-----+-----+-----------+
|  a | b  | c | d | a+b | c-b | a+b / c-b |
+----+----+-------+-----+-----+-----------+
| 13 | 43 | 67| 3 |  56 |  24 |   2.33    |
+----+----+---+---+-----+-----+-----------+
g0czyy6m

g0czyy6m1#

是的,有可能。你可以用 selectExpr 或者 withColumn 要添加额外列:

from pyspark.sql.functions import expr

(
    df.withColumn("a+b", expr("a + b"))
    .withColumn("c-b", expr("c - b"))
    .withColumn("a+b / c-b", expr("(a + b) / (c - b)"))
    .show()
)

相关问题