IF then ELSE と同等の Spark
この質問では、条件付きルールに基づいて Spark データフレームに新しい列を作成する方法について詳しく説明します。
When 関数の問題
提供されたコードは、when() 関数を使用して、「iris_class」列の値に基づいて「Class」という名前の新しい列を作成しようとします。ただし、 when() が引数を 2 つだけ取ることを示すエラーがスローされます。
正しい構文と構造
when() 関数の正しい構文は次のとおりです。
1 |
|
これにより、 when() 句でカバーされないケースを処理するためのオプションの else() 句を使用して、複数の when() 句を連鎖させることができます。
この構文は、以下に示すように、複数の WHEN 句を含む CASE ステートメントになります。
1 2 3 4 5 6 |
|
推奨される解決策
したがって、「クラス」を作成するための正しいコードになります。列は次のようになります:
1 2 3 4 5 6 |
|
代替構文
同じ結果を達成するための別の有効な構文は次のとおりです:
1 2 3 4 5 6 7 8 |
|
注on Hive IF
構文 IF(condition, if-true, if-false) を持つ Hive IF 条件は、Spark ではサポートされていないことに注意することが重要です。この条件は、Hive サポートを備えた生の SQL クエリでのみ使用できます。
以上がSpark DataFrames に IF-THEN-ELSE ロジックを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。