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