Heim  >  Artikel  >  Backend-Entwicklung  >  Wie repliziere ich eine IF Then ELSE-Anweisung in Apache Spark?

Wie repliziere ich eine IF Then ELSE-Anweisung in Apache Spark?

Susan Sarandon
Susan SarandonOriginal
2024-11-16 06:34:03978Durchsuche

How to Replicate an IF Then ELSE Statement 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn