pyspark.pandas.mlflow.load_model
pyspark.pandas.mlflow。 load_model ( model_uri:str,predict_type:聯盟(str,類型,numpy.dtype,pandas.core.dtypes.base.ExtensionDtype]=“推斷” )
參數
model_uri str

URI指向模型。看到MLflow文檔以了解更多的細節。

predict_type python基本類型、numpy基本類型、火花類型或“推斷”。

這是返回類型,預計當調用模型的預測函數。如果指定“推斷”,包裝器將嚐試確定自動基於模型類型的返回類型。

返回
PythonModelWrapper

一個包裝MLflow PythonModel對象。這個包裝器將堅持mlflow.pyfunc.PythonModel的接口。

筆記

目前,該模型預測隻能與現有dataframe回歸。其他列必須手動加入。例如,這段代碼不工作:

> > >df=psDataFrame({“x1”:(2.0),“x2”:(3.0),“z”:(- - - - - -1]})> > >特性=df[[“x1”,“x2”]]> > >y=模型預測(特性)> > >#工作:> > >特性(“y”]=y> > ># dataframes信息不一致將會失敗。> > >df(“y”]=y

當前的解決方案是使用.merge()函數,使用特征值作為合並的鑰匙。

> > >特性(“y”]=y> > >一切=df合並(特性,=(x1的,“x2”])> > >一切(x1, x2) z y0 1.376932 2.0 3.0 1

例子

這是一個完整的示例,創建一個模型scikit-learn和保存模型

MLflow。然後加載模型作為預測,可以應用於pandas-on-Spark Dataframe。

我們第一次初始化MLflow環境:

> > >mlflow.tracking進口MlflowClient,set_tracking_uri> > >進口mlflow.sklearn> > >tempfile進口mkdtemp> > >d=mkdtemp(“pandas_on_spark_mlflow”)> > >set_tracking_uri(“文件:% s%d)> > >客戶端=MlflowClient()> > >exp_id=mlflowcreate_experiment(“my_experiment”)> > >經驗值=mlflowset_experiment(“my_experiment”)

我們的目標是在學習這個數值函數使用一個簡單的線性回歸量。

> > >sklearn.linear_model進口LinearRegression> > >火車=pdDataFrame({“x1”:np不等(8),“x2”:np不等(8)* *2,“y”:np日誌(2+np不等(8)})> > >train_x=火車[[“x1”,“x2”]]> > >train_y=火車[[“y”]]> > >mlflowstart_run():lr=LinearRegression()lr適合(train_x,train_y)mlflowsklearnlog_model(lr,“模型”)LinearRegression (…)

現在我們的模型使用MLflow記錄,我們裝載它,應用它pandas-on-Spark dataframe:

> > >pyspark.pandas.mlflow進口load_model> > >run_info=客戶端list_run_infos(exp_id)[- - - - - -1]> > >模型=load_model(”:/{run_id}/模式”格式(run_id=run_inforun_uuid))> > >prediction_df=psDataFrame({“x1”:(2.0),“x2”:(4.0]})> > >prediction_df(“預測”]=模型預測(prediction_df)> > >prediction_df(x1, x2)預測0 2.0 4.0 1.355551

該模型也適用於熊貓DataFrames預期:

> > >模型預測(prediction_df[[“x1”,“x2”]]to_pandas())數組([[1.35555142]])