Давайте определим конвейер Spark, который собирает вместе несколько столбцов, а затем применяет хэширование функций:
val df = sqlContext.createDataFrame(Seq((0.0, 1.0, 2.0), (3.0, 4.0, 5.0))).toDF("colx", "coly", "colz")
val va = new VectorAssembler().setInputCols(Array("colx", "coly", "colz")).setOutputCol("ft")
val hashIt = new HashingTF().setInputCol("ft").setOutputCol("ft2")
val pipeline = new Pipeline().setStages(Array(va, hashIt))
Установка конвейера с pipeline.fit(df)
бросками:
java.lang.IllegalArgumentException: требование не выполнено: входной столбец должен быть ArrayType, но получен org.apache.spark.mllib.linalg.VectorUDT@f71b0bce
Есть ли трансформатор, который позволит VectorAssembler
и HashingTF
работать вместе?