如何在火花管道中使用 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,他们就和你一样。但是,您注意到大多数 stagesEstimatorsTransformers)必须首先安装,但在示例中他们不这样做,为什么?因为,开发人员考虑到了这一点,并以某种方式对 Pipeline class 进行了编程,让它为您执行此步骤(所有模型实例化、拟合、转换和预测都在内部完成)。