首页 > 解决方案 > 如何保存 Spark sklearn 模型的模型?

问题描述

我正在训练一个随机森林模型 sklearn,包裹在from spark_sklearn import GridSearchCV. 当我尝试保存模型时,我得到了SPARK-5063 error.

我尝试同时使用picklejoblib


from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
import pickle
from spark_sklearn import GridSearchCV

def main():
...
    regr_rf_cv = GridSearchCV(sc=spark.sparkContext, 
                      estimator=regr, 
                      n_jobs=20,
                      cv=5, 
                      verbose=5,
                      param_grid={})
    regr_rf_cv.fit(train_df, train_target_df)
    save_model(regr_rf_cv , "rf_model", "/data/saved_model")

def save_model(model, model_name, path):
      with open(path + model_name + ".pkl", 'wb') as f:
        pickle.dump(model, f)
        print("Model was saved in: " + path + model_name + ".pkl"

main()

例外:您似乎正试图SparkContext从广播变量、操作或转换中引用。SparkContext只能在驱动程序上使用,不能在工作人员上运行的代码中使用。有关详细信息,请参阅 SPARK-5063。

标签: apache-sparkscikit-learnpyspark

解决方案


推荐阅读