Heim > Artikel > Backend-Entwicklung > Wie repliziere ich eine IF Then ELSE-Anweisung in Apache Spark?
Spark-Äquivalent von IF Then ELSE
In Spark können Sie mithilfe der Funktion when() bedingte Ausdrücke auf Spalten anwenden. Mit dieser Funktion können Sie wahre und falsche Werte für verschiedene Bedingungen angeben.
Codefehler und Lösung
Ihr Code gibt einen Fehler aus, weil Sie when() falsch verwenden. Funktion. Die korrekte Syntax für when() lautet:
when(condition, value).when(...)
oder
when(condition, value).otherwise(...)
In Ihrem Code haben Sie drei Argumente für die Funktion when() angegeben, was falsch ist. Um dies zu beheben, müssen Sie Ihren Code wie folgt umschreiben:
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) )
Äquivalenter SQL-Ausdruck
Die Funktion Spark when() entspricht der CASE-Anweisung in SQL:
CASE WHEN (iris_class = 'Iris-setosa') THEN 0 WHEN (iris_class = 'Iris-versicolor') THEN 1 ELSE 2 END
Das obige ist der detaillierte Inhalt vonWie repliziere ich eine IF Then ELSE-Anweisung in Apache Spark?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!