我正在尝试使用“chained when”功能。 换句话说,我希望获得两个以上的输出。
我尝试在Excel中使用连接IF函数的相同逻辑:
df.withColumn("device_id", when(col("device")=="desktop",1)).otherwise(when(col("device")=="mobile",2)).otherwise(null))
但这不起作用,因为我无法将元组放入“其他”功能。
答案 0 :(得分:18)
你试过了吗?
from pyspark.sql import functions as F
df.withColumn('device_id', F.when(col('device')=='desktop', 1).when(col('device')=='mobile', 2).otherwise(None))
请注意,在链接when
函数时,您不需要在otherwise
函数中包含后续调用。