假设我有一个Dataframe:
+-----+-----+-----+
|id |foo. |bar. |
+-----+-----+-----+
| 1| baz| 0|
| 2| baz| 0|
| 3| 333| 2|
| 4| 444| 1|
+-----+-----+-----+
我想根据bar的值将foo列设置为一个值。
如果bar为2:将该行的foo值设置为“x”,
else if bar为1:将该行的foo值设置为“y”
如果两个条件都不满足,则保持foo值不变。
pyspark.when似乎是最接近的方法,但基于另一个columns值,它似乎不起作用。
2条答案
按热度按时间6bc51xsx1#
我们可以用
when
òrUDF
在spark中根据情况插入新的列。创建示例Dataframe:
使用时间:
使用自定义项:
2eafrhcq2#
when
可以与其他列一起使用。你可以用F.col
要获取另一列的值并提供适当的条件,请执行以下操作: