web-dev-qa-db-ja.com

PySpark:複数の出力がある関数

「連鎖」機能を使用しようとしています。つまり、3つ以上の出力を取得したいのです。

Excelで連結IF関数と同じロジックを使用してみました。

  df.withColumn("device_id", when(col("device")=="desktop",1)).otherwise(when(col("device")=="mobile",2)).otherwise(null))

しかし、タプルを「その他の」関数に入れることができないため、それは機能しません。

9
Fede

やってみました:

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関数でラップする必要がないことに注意してください。

21
Grr