作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将几个经过训练的管道连接成一个,这类似于“Spark add new fitted stage to a exitsting PipelineModel without fitting again” 然而,下面的解决方案适用于 PySpark。
> pipe_model_new = PipelineModel(stages = [pipe_model , pipe_model2])
> final_df = pipe_model_new.transform(df1)
在 Apache Spark 2.0 中,“PipelineModel”的构造函数被标记为私有(private)的,因此它不能被外部调用。在“Pipeline”类中,只有“fit”方法创建“PipelineModel”
val pipelineModel = new PipelineModel("randomUID", trainedStages)
val df_final_full = pipelineModel.transform(df)
Error:(266, 26) constructor PipelineModel in class PipelineModel cannot be accessed in class Preprocessor
val pipelineModel = new PipelineModel("randomUID", trainedStages)
最佳答案
没有什么*错with using Pipeline
并调用 fit
方法。如果阶段是 Transformer
,并且 PipelineModel
是**,则 fit
的工作方式类似于身份。
可以查看relevant Python :
if isinstance(stage, Transformer):
transformers.append(stage)
dataset = stage.transform(dataset)
和Scala code :
这意味着拟合过程只会验证模式并创建一个新的 PipelineModel
对象。
case t: Transformer =>
t
* 唯一可能的问题是存在非惰性 Transformers
,但是,除了已弃用的 OneHotEncoder
之外,Spark 核心 API 不提供此类功能。
** 在 Python 中:
from pyspark.ml import Transformer, PipelineModel
issubclass(PipelineModel, Transformer)
True
在斯卡拉
import scala.reflect.runtime.universe.typeOf
import org.apache.spark.ml._
typeOf[PipelineModel] <:< typeOf[Transformer]
Boolean = true
关于apache-spark - 将新的拟合阶段添加到现有的 PipelineModel 中而无需再次拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53269075/
我是一名优秀的程序员,十分优秀!