Есть ли какая-либо функция для регистрации модели pyspark.mllib.clustering в mlflow? - PullRequest
0 голосов
/ 05 мая 2020

Я использую pyspark.mllib.clustering, но при использовании функции log_model () он дает следующую ошибку в команде log_model

mlflow.spark.log_model(spark_model=bkm, artifact_path="mllib-model") #command
#error
Cannot serialize this model. MLFlow can only save descendants of pyspark.Modelthat implement MLWritable and MLReadable.

Я пишу что-то вроде этого

import numpy as np
df = spark.createDataFrame([[0, 33.3, -17.5],
                              [1, 40.4, -20.5],
                              [2, 28., -23.9],
                              [14, 38.9, -20.5],
                              [15, 50.3, -23.9],
                              [21, 29.5, -21.0]
                             ],
                              ["other","lat", "long"])

rdd2 = np.array(df.rdd.map(lambda x : [int(i) for i in x]).collect())

и затем обучите модель с помощью mllib

from pyspark.mllib.clustering import BisectingKMeans
# import mlflow
# from mlflow import spark as mlflow_spark
# mlflow_spark.autolog()
bskm = BisectingKMeans()
bkm = bskm.train(sc.parallelize(rdd2), k=3)
mlflow.spark.log_model(spark_model=bkm, artifact_path="mllib-model")
...