Я использую 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")