根据条件将列添加到 pyspark 数据框

jk1*_*093 3 python dataframe apache-spark apache-spark-sql pyspark

我的 data.csv 文件包含三列,如下所示。我已将此文件转换为 python spark 数据帧。

  A   B    C
| 1 | -3 | 4 |
| 2 | 0  | 5 |
| 6 | 6  | 6 |
Run Code Online (Sandbox Code Playgroud)

我想在火花数据框中添加另一列 D,其值为 Yes 或 No,条件是如果 B 列中的相应值大于 0,则是,否则为否。

  A   B    C   D
| 1 | -3 | 4 | No  |
| 2 | 0  | 5 | No  |
| 6 | 6  | 6 | Yes |
Run Code Online (Sandbox Code Playgroud)

我无法通过 PySpark 数据帧操作来实现这一点。

1pl*_*ara 9

尝试这样的事情:

from pyspark.sql import functions as f
df.withColumn('D', f.when(f.col('B') > 0, "Yes").otherwise("No")).show()
Run Code Online (Sandbox Code Playgroud)

  • 您还可以直接导入 col, when 以避免 f.when。我发现在某些情况下它不那么冗长 (2认同)