Compartilhar via


quando (Coluna)

Avalie uma lista de condições e retorne uma das várias expressões de resultado possíveis.

Sintaxe

when(condition, value)

Parâmetros

Parâmetro Tipo Descrição
condition Coluna Condição booliana
value value Valor a ser retornado se a condição for verdadeira

Devoluções

Coluna

Exemplos

Exemplo 1: usar when() com condições e valores para criar uma nova Coluna.

from pyspark.sql import functions as sf
df = spark.createDataFrame([(2, "Alice"), (5, "Bob")], ["age", "name"])
result = df.select(df.name, sf.when(df.age > 4, 1).when(df.age < 3, -1).otherwise(0))
result.show()
# +-----+------------------------------------------------------------+
# | name|CASE WHEN (age > 4) THEN 1 WHEN (age < 3) THEN -1 ELSE 0 END|
# +-----+------------------------------------------------------------+
# |Alice|                                                          -1|
# |  Bob|                                                           1|
# +-----+------------------------------------------------------------+

Exemplo 2: Encadeamento de várias when() condições.

from pyspark.sql import functions as sf
df = spark.createDataFrame([(1, "Alice"), (4, "Bob"), (6, "Charlie")], ["age", "name"])
result = df.select(
    df.name,
    sf.when(df.age < 3, "Young").when(df.age < 5, "Middle-aged").otherwise("Old")
)
result.show()
# +-------+---------------------------------------------------------------------------+
# |   name|CASE WHEN (age < 3) THEN Young WHEN (age < 5) THEN Middle-aged ELSE Old END|
# +-------+---------------------------------------------------------------------------+
# |  Alice|                                                                      Young|
# |    Bob|                                                                Middle-aged|
# |Charlie|                                                                        Old|
# +-------+---------------------------------------------------------------------------+

Exemplo 3: usando valores literais como condições.

from pyspark.sql import functions as sf
df = spark.createDataFrame([(2, "Alice"), (5, "Bob")], ["age", "name"])
result = df.select(
    df.name, sf.when(sf.lit(True), 1).otherwise(
        sf.raise_error("unreachable")).alias("when"))
result.show()
# +-----+----+
# | name|when|
# +-----+----+
# |Alice|   1|
# |  Bob|   1|
# +-----+----+