我正在训练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。