Я пытаюсь обернуть определенную функцию Scala в преобразование с использованием конвейера
import org.apache.spark.ml.{Pipeline, UnaryTransformer}
import org.apache.spark.sql.types._
import org.apache.spark.ml.param.ParamMap
import org.apache.spark.ml.util.{MLWritable, MLWriter}
class UDFTransformer[T, U](override valuid: String,
f: T =>U, inType: DataType,outType: DataType)
И я получаю ошибку
ошибка: не найдено: тип DataType
Я импортировал все необходимые файлы, я не знаю, что мне не хватает или почему я получаю эту ошибку
Остальной код
extendsUnaryTransformer[T, U, UDFTransformer[T, U]] with MLWritable {
override protected defcreateTransformFunc: T =>U = f
override protected defvalidateInputType(inputType: DataType): Unit = require(inputType == inType)
override protected defoutputDataType: DataType = outType
override defwrite: MLWriter = new MLWriter {
override protected defsaveImpl(path: String): Unit = {}
}
}
Класс UDFTransformer переносит функцию f, которая принимает универсальный тип T, и создает тип U. На уровне набора данных Spark он преобразует входной столбец (см. UnaryTransformer) типа inType в новый выходной столбец (опять же, поле). определяется UnaryTransformer) типа outType. Класс также имеет фиктивную реализацию черты MLWritable, которая поддерживает сериализацию преобразователя в файл.