Вы можете использовать метод .transform()
.
Он существует в API DataFrame со следующей подписью:
def transform[U](t: (DataFrame) ⇒ DataFrame): DataFrame`
и в API набора данных (DataFrame является псевдонимом набора данных [Row] с 2.2.0:
def transform[U](t: (Dataset[T]) ⇒ Dataset[U]): Dataset[U]
Таким образом, вы можете определить метод:
def mytransformation(inputDF:DataFrame):DataFrame = {
//transformationgo there
// val ouputDF = inputDF.map(...).filter(...)
outputDF
}
или функция:
val mytransformation:DataFrame => DataFrame = inputDF => {
// val ouputDF = inputDF.map(...).filter(...)
outputDF
}
Затем вы можете передать mytransformation в метод transform в качестве аргумента