Как сохранить модель Spark Sklearn модель? - PullRequest
0 голосов
/ 15 апреля 2019

Я тренирую случайную модель леса из 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.

...