「連鎖」機能を使用しようとしています。つまり、3つ以上の出力を取得したいのです。
Excelで連結IF関数と同じロジックを使用してみました。
df.withColumn("device_id", when(col("device")=="desktop",1)).otherwise(when(col("device")=="mobile",2)).otherwise(null))
しかし、タプルを「その他の」関数に入れることができないため、それは機能しません。
やってみました:
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
関数でラップする必要がないことに注意してください。