Spark 等價於 IF Then ELSE
本題深入研究基於條件規則在 Spark DataFrame 中建立新欄位。
何時的問題函數
提供的程式碼嘗試使用when()函數根據「iris_class」欄位中的值建立一個名為「Class」的新欄位。但是,它會拋出一個錯誤,指出 when() 只接受兩個參數。
正確的語法和結構
when() 函數的正確語法是:
這允許將多個when() 子句連結在一起,並使用可選的else() 子句來處理未涵蓋的情況
此語法的等效SQL 是帶有多個WHEN 子句的CASE 語句,如下所示:
建議解決方案
因此,建立「Class」欄位的正確程式碼應該是:
替代語法
另一個實現相同結果的有效語法是:
關於Hive 的注意事項IF
需要注意的是,Hive Spark 不支援IF 條件,其語法為IF(condition, if-true, if-false)。此條件只能在支援 Hive 的原始 SQL 查詢中使用。
以上是如何在 Spark DataFrame 中實作 IF-THEN-ELSE 邏輯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!