J'essaie d'utiliser une fonction "chaîné quand". En d'autres termes, j'aimerais obtenir plus de deux sorties.
J'ai essayé d'utiliser la même logique de la fonction IF concaténée dans Excel:
df.withColumn("device_id", when(col("device")=="desktop",1)).otherwise(when(col("device")=="mobile",2)).otherwise(null))
Mais cela ne fonctionne pas car je ne peux pas mettre un Tuple dans la fonction "sinon".
As-tu essayé:
from pyspark.sql import functions as F
df.withColumn('device_id', F.when(col('device')=='desktop', 1).when(col('device')=='mobile', 2).otherwise(None))
Notez que lors du chaînage des fonctions when
, vous n'avez pas besoin d'encapsuler les appels successifs dans une fonction otherwise
.