ホームページ >バックエンド開発 >Python チュートリアル >Apache Spark で IF then ELSE ステートメントをレプリケートするにはどうすればよいですか?

Apache Spark で IF then ELSE ステートメントをレプリケートするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-16 06:34:031041ブラウズ

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

Spark IF then ELSE と同等

Spark では、when() 関数を使用して条件式を列に適用できます。この関数を使用すると、さまざまな条件に対して true と false の値を指定できます。

コード エラーと解決策

when() の使用法が間違っているため、コードはエラーをスローします。関数。 when() の正しい構文は次のとおりです:

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

または

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

コードでは、when() 関数に 3 つの引数を指定していますが、これは正しくありません。これを修正するには、コードを次のように書き直す必要があります。

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)
)

同等の SQL 式

Spark when() 関数は、次の CASE ステートメントと同等です。 SQL:

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

以上がApache Spark で IF then ELSE ステートメントをレプリケートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。