apache-spark - 如何保存 Spark sklearn 模型的模型?
问题描述
我正在训练一个随机森林模型 sklearn,包裹在from spark_sklearn import GridSearchCV
. 当我尝试保存模型时,我得到了SPARK-5063 error
.
我尝试同时使用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。
解决方案
推荐阅读
- java - Spring Data JPA:在两个方向上保持多对可能的关系
- java - 确定大数能被 11 整除的数
- google-bigquery - BigQueryIO.writeTableRows 以非常高的延迟写入 BigQuery
- vb.net - VB.net Smtp 邮件正文
- r - ggplot:如何在由几个 geom_ribbon() 和 geom_line() 组成的图中添加图例?
- python - 使用 Selenium 单击动态更改的 ID 元素
- python - 如何在 boto3 中设置 executionRoleArn 的值?
- sql-server - 避免针对具有不同注释的相同查询的计划缓存膨胀
- python - CMake FindPython Oddity:MSVC 未链接 CMakes 指示链接的库
- sql - 提高 SQL 查询性能,需要澄清