Maison > Article > développement back-end > Comment répliquer une instruction IF Then ELSE dans 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!