下面是我创建的一些模型:
class SomeModel(mlflow.pyfunc.PythonModel):
def predict(self, context, input):
# do fancy ML stuff
# log results
pandas_df = pd.DataFrame(...insert predictions here...)
spark_df = spark.createDataFrame(pandas_df)
spark_df.write.saveAsTable('tablename', mode='append')
我尝试通过在代码后面调用它来以这种方式记录模型:
with mlflow.start_run(run_name="SomeModel_run"):
model = SomeModel()
mlflow.pyfunc.log_model("somemodel", python_model=model)
不幸的是,它给我这个错误消息:mlflow.pyfunc.log_model("somemodel", python_model=model)
错误是由mlflow.pyfunc.log_model("somemodel", python_model=model)
行引起的,如果将其注解掉,模型将进行预测并将结果记录在表中。
或者,删除predict函数中调用spark创建 Dataframe 并保存表的行,我就可以记录我的模型了。
我需要我的模型不仅要写入表,还要被记录
1条答案
按热度按时间4nkexdtk1#
我也遇到过类似的错误,我可以通过将spark函数(如spark.createDataFrame(pandas_df))带出类来解决这个问题。如果你想使用spark读写数据,可以在main函数中完成。