首页 > 解决方案 > PySpark:一起评估特定列

问题描述

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

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

标签: pythonapache-spark

解决方案


是的,这是可能的。您可以使用selectExprwithColumn添加额外的列:

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

推荐阅读