Нет ничего неправильного с использованием Pipeline
и вызовом fit
метода.Если уровень - Transfomer
, а PipelineModel
- **, fit
работает как личность.
Вы можете проверить соответствующий Python :
if isinstance(stage, Transformer):
transformers.append(stage)
dataset = stage.transform(dataset)
и Scala-код :
Это означает, что процесс подгонки будет только проверять схему и создавать новый объект PipelineModel
.
case t: Transformer =>
t
*единственное возможное беспокойство вызывает наличие не ленивых Transformers
, хотя, за исключением устаревших OneHotEncoder
, Spark core API не предоставляет таких.
** В Python:
from pyspark.ml import Transformer, PipelineModel
issubclass(PipelineModel, Transformer)
True
In Scala
import scala.reflect.runtime.universe.typeOf
import org.apache.spark.ml._
typeOf[PipelineModel] <:< typeOf[Transformer]
Boolean = true