Да, это возможно.За одним исключением SparkR, который требует дополнительных метаданных для загрузки модели, все собственные модели ML (независимо от пользовательских расширений гостевого языка) могут быть сохранены и загружены с произвольным внутренним интерфейсом.
Просто сохраните MLWritable
объект на одной стороне, используя метод save
или его записывающее устройство (write
) и загрузите обратно с совместимым Readable
на другой стороне.Допустим, в Python:
from pyspark.ml.feature import StringIndexer
StringIndexer(inputCol="foo", outputCol="bar").write().save("/tmp/indexer")
и в Scala
import org.apache.spark.ml.feature.StringIndexer
val indexer = StringIndexer.load("/tmp/indexer")
indexer.getInputCol
// String = foo
При этом модели ML, как правило, являются плохим выбором для производственного использования, и существуют более подходящие варианты - Какслужить модели Spark MLlib? .