PySpark:具有多个输出的功能

时间:2017-03-01 16:31:17

标签: python apache-spark pyspark pyspark-sql

我正在尝试使用“chained when”功能。 换句话说,我希望获得两个以上的输出。

我尝试在Excel中使用连接IF函数的相同逻辑:

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

但这不起作用,因为我无法将元组放入“其他”功能。

1 个答案:

答案 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函数中包含后续调用。