Spark Transformers[Scala]:在输入完整数据之前了解模式转换结果
如果我想知道Spark Transformers[Scala]:在输入完整数据之前了解模式转换结果,scala,apache-spark,apache-spark-ml,Scala,Apache Spark,Apache Spark Ml,如果我想知道Transformer如何改变模式,有没有一种方法可以使用;不提供数据?例如,我有一个大的数据帧,但我不想将它与转换器一起使用;我只想知道在不使用完整数据的情况下发生的模式转换。transformer是懒惰的(没有fit阶段),因此即使传递数据,也不会有明显的延迟 但是,所有管道阶段(包括转换器和估计器)都提供了方法,可以直接调用该方法,并将结构类型作为参数。例如,如果您有像这样的StringIndexer import org.apache.spark.ml.feature.Str
Transformer
如何改变模式,有没有一种方法可以使用;不提供数据?例如,我有一个大的数据帧,但我不想将它与转换器一起使用;我只想知道在不使用完整数据的情况下发生的模式转换。transformer
是懒惰的(没有fit
阶段),因此即使传递数据,也不会有明显的延迟
但是,所有管道阶段
(包括转换器
和估计器
)都提供了方法,可以直接调用该方法,并将结构类型
作为参数。例如,如果您有像这样的StringIndexer
import org.apache.spark.ml.feature.StringIndexer
val indexer = new StringIndexer().setInputCol("foo").setOutputCol("foo_indexed")
import org.apache.spark.sql.types._
val schema = StructType(Seq(StructField("foo", StringType)))
像这样的模式
import org.apache.spark.ml.feature.StringIndexer
val indexer = new StringIndexer().setInputCol("foo").setOutputCol("foo_indexed")
import org.apache.spark.sql.types._
val schema = StructType(Seq(StructField("foo", StringType)))
您可以按如下方式应用它:
indexer.transformSchema(schema)
得到
org.apache.spark.sql.types.StructType=StructType(StructField(foo,StringType,true),StructField(foo_索引,DoubleType,false))