All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.hydrosphere.spark_ml_serving.CommonLoaderConversions.scala Maven / Gradle / Ivy

package io.hydrosphere.spark_ml_serving

import io.hydrosphere.spark_ml_serving.classification._
import io.hydrosphere.spark_ml_serving.clustering._
import io.hydrosphere.spark_ml_serving.common._
import io.hydrosphere.spark_ml_serving.preprocessors._
import io.hydrosphere.spark_ml_serving.regression._
import org.apache.spark.ml.PipelineModel
import org.apache.spark.ml.classification._
import org.apache.spark.ml.clustering.{GaussianMixtureModel, KMeansModel, LocalLDAModel => SparkLocalLDAModel}
import org.apache.spark.ml.feature._
import org.apache.spark.ml.regression._

object CommonLoaderConversions extends DynamicLoaderConverter {
  implicit def sparkToLocal(m: Any): ModelLoader[_] = {
    m match {
      case _: PipelineModel.type => LocalPipelineModel

      case x: ModelLoader[_] => x

      // Classification models
      case _: DecisionTreeClassificationModel.type => LocalDecisionTreeClassificationModel
      case _: MultilayerPerceptronClassificationModel.type =>
        LocalMultilayerPerceptronClassificationModel
      case _: NaiveBayesModel.type                 => LocalNaiveBayes
      case _: RandomForestClassificationModel.type => LocalRandomForestClassificationModel
      case _: GBTClassificationModel.type          => LocalGBTClassificationModel
      // Clustering models
      case _: GaussianMixtureModel.type => LocalGaussianMixtureModel
      case _: KMeansModel.type          => LocalKMeansModel
      case _: SparkLocalLDAModel.type   => LocalLDAModel

      // Preprocessing
      case _: Binarizer.type            => LocalBinarizer
      case _: CountVectorizerModel.type => LocalCountVectorizerModel
      case _: DCT.type                  => LocalDCT
      case _: HashingTF.type            => LocalHashingTF
      case _: IndexToString.type        => LocalIndexToString
      case _: MaxAbsScalerModel.type    => LocalMaxAbsScalerModel
      case _: MinMaxScalerModel.type    => LocalMinMaxScalerModel
      case _: NGram.type                => LocalNGram
      case _: Normalizer.type           => LocalNormalizer
      case _: OneHotEncoder.type        => LocalOneHotEncoder
      case _: PCAModel.type             => LocalPCAModel
      case _: PolynomialExpansion.type  => LocalPolynomialExpansion
      case _: StandardScalerModel.type  => LocalStandardScalerModel
      case _: StopWordsRemover.type     => LocalStopWordsRemover
      case _: StringIndexerModel.type   => LocalStringIndexerModel
      case _: Tokenizer.type            => LocalTokenizer
      case _: VectorIndexerModel.type   => LocalVectorIndexerModel
      case _: IDFModel.type             => LocalIDF
      case _: ChiSqSelectorModel.type   => LocalChiSqSelectorModel
      case _: RegexTokenizer.type       => LocalRegexTokenizer
      case _: VectorAssembler.type      => LocalVectorAssembler

      // Regression
      case _: DecisionTreeRegressionModel.type => LocalDecisionTreeRegressionModel
      case _: LinearRegressionModel.type       => LocalLinearRegressionModel
      case _: RandomForestRegressionModel.type => LocalRandomForestRegressionModel
      case _: GBTRegressionModel.type          => LocalGBTRegressor

      case x => SpecificLoaderConversions.sparkToLocal(x)
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy