Maison >développement back-end >Tutoriel Python >Comment répliquer une instruction IF Then ELSE dans Apache Spark ?

Comment répliquer une instruction IF Then ELSE dans Apache Spark ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-16 06:34:031039parcourir

How to Replicate an IF Then ELSE Statement in Apache Spark?

Équivalent Spark de IF Then ELSE

Dans Spark, vous pouvez appliquer des expressions conditionnelles aux colonnes à l'aide de la fonction when(). Cette fonction vous permet de spécifier des valeurs vraies et fausses pour différentes conditions.

Erreur de code et solution

Votre code génère une erreur car vous n'utilisez pas correctement le when() fonction. La syntaxe correcte pour when() est :

when(condition, value).when(...)

ou

when(condition, value).otherwise(...)

Dans votre code, vous avez fourni trois arguments à la fonction when(), ce qui est incorrect. Pour résoudre ce problème, vous devez réécrire votre code comme suit :

iris_spark_df = iris_spark.withColumn(
    "Class", 
    F.when(iris_spark.iris_class == 'Iris-setosa', 0)
    .when(iris_spark.iris_class == 'Iris-versicolor', 1)
    .otherwise(2)
)

Expression SQL équivalente

La fonction Spark when() est équivalente à l'instruction CASE dans SQL :

CASE
    WHEN (iris_class = 'Iris-setosa') THEN 0
    WHEN (iris_class = 'Iris-versicolor') THEN 1
    ELSE 2
END

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn