我有一个pyspark数据框,它由唯一标识符组合在一起。我需要为每个人训练一个sci-kit模型,然后存储该模型。 下面是我的数据框在小组之后的样子的示例:
from sklearn.externals import joblib
def fit_model_pipline(person,line):
data_list = line
vect = TfidfVectorizer()
db = DBSCAN(eps=0.4, min_samples=3)
pipe = Pipeline([('tf-idf', vect), ('dbscan', db)])
fitted_pipe = pipe.fit(data_list)
serialised_model_path = "../../serialised_model/model" "_"+person + ".pkl"
joblib.dump(fitted_pipe, serialised_model_path)
return "True"
fit_models_udf = F.udf(fit_model_pipline, StringType())
fitted_models = df_grouped.withColumn("Save_Model", fit_models_udf(df_grouped["person"], df_grouped["data"]))
scikit模型的选择无论如何,但我无法在每个人的UDF中保存模型。下面是代码示例。
IOError: [Errno 2] No such file or directory: u'../../serialised_model/model_Sue.pkl'
我收到此错误:
serialised_model
我检查了文件路径,<script>
确实存在上面2个文件夹,我正在运行代码。我还验证了管道工作并在UDF外部运行时保存了pickle。