擬合Apache SparkML模型會拋出錯誤

學習如何解決Databricks在擬合SparkML模型或管道時拋出的錯誤。

寫的亞當Pavlacka

最後發布日期:2022年5月16日

問題

Databricks在擬合SparkML模型或Pipeline時拋出錯誤:

org.apache.spark.SparkException: Job abort to stage failure: Task 0 in stage 162.0 failed 4 times,最近的failure: Lost Task 0.3 in stage 162.0 (TID 168, 10.205.250.130, executor 1): org.apache.spark.SparkException: failed to execute user defined function($anonfun$9: (string) =>雙)

導致

通常,在擬合SparkML模型或Pipeline時的錯誤是訓練數據問題的結果。

解決方案

檢查以下問題:

  1. 識別並處理數據集中的NULL值。Spark需要知道如何處理數據集中缺失的值。
    • 使用dropna()丟棄缺少值的行。
    • 輸入一些值,如0或列的平均值。這個解決方案取決於什麼對數據集有意義。
  2. 確保所有訓練數據都適當地轉換為數字格式。Spark需要知道如何處理類別變量和字符串變量。各種各樣的特征變形金剛可用於處理特定於數據的情況。
  3. 檢查共線性.高度相關甚至重複的特征可能會導致模型擬合問題。這種情況很少發生,但您應該確保排除它。