如何在火花管道中使用 IDF?
How do I use IDF in a spark pipeline?
我很想用spark推的新pipeline概念,但是由于IDF对象需要先fit到data再transform,不知道怎么用。我想做这个;
Tokenizer tk = new Tokenizer()
.setInputCol("text")
.setOutputCol("words");
HashingTF tf = new HashingTF()
.setNumFeatures(1000)
.setInputCol(tk.getOutputCol())
.setOutputCol("rawFeatures");
IDF idf = new IDF()
.setInputCol(tf.getOutputCol())
.setOutputCol("IDFFeatures");
Pipeline pipe = new Pipeline()
.setStages(new PipeLineStage[] {tk, tf, idf})
但除非我误解了它不适用于 idf。
一点也不复杂,如果你勾选Official Pipeline Example,他们就和你一样。但是,您注意到大多数 stages
(Estimators
或 Transformers
)必须首先安装,但在示例中他们不这样做,为什么?因为,开发人员考虑到了这一点,并以某种方式对 Pipeline
class 进行了编程,让它为您执行此步骤(所有模型实例化、拟合、转换和预测都在内部完成)。
我很想用spark推的新pipeline概念,但是由于IDF对象需要先fit到data再transform,不知道怎么用。我想做这个;
Tokenizer tk = new Tokenizer()
.setInputCol("text")
.setOutputCol("words");
HashingTF tf = new HashingTF()
.setNumFeatures(1000)
.setInputCol(tk.getOutputCol())
.setOutputCol("rawFeatures");
IDF idf = new IDF()
.setInputCol(tf.getOutputCol())
.setOutputCol("IDFFeatures");
Pipeline pipe = new Pipeline()
.setStages(new PipeLineStage[] {tk, tf, idf})
但除非我误解了它不适用于 idf。
一点也不复杂,如果你勾选Official Pipeline Example,他们就和你一样。但是,您注意到大多数 stages
(Estimators
或 Transformers
)必须首先安装,但在示例中他们不这样做,为什么?因为,开发人员考虑到了这一点,并以某种方式对 Pipeline
class 进行了编程,让它为您执行此步骤(所有模型实例化、拟合、转换和预测都在内部完成)。