如何保存Spark sklearn模型的模型?

时间:2019-04-15 18:15:40

标签: apache-spark scikit-learn pyspark

我正在训练sklearn的随机森林模型,该模型在spark_skleran GridSearchCV中进行了变形。 当我尝试保存模型时,出现SPARK-5063错误。

异常:似乎您正在尝试从广播变量,操作或转换引用SparkContext。 SparkContext只能在驱动程序上使用,而不能在工作程序上运行的代码中使用。有关更多信息,请参阅SPARK-5063。

我尝试同时使用pickle和joblib。

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。

0 个答案:

没有答案