Нет метода groupByKey
, который принимает Column
в качестве аргумента.Существуют методы, которые принимают функции:
def groupByKey[K](func: MapFunction[T, K], encoder: Encoder[K]): KeyValueGroupedDataset[K, T]
или
def groupByKey[K](func: (T) ⇒ K)(implicit arg0: Encoder[K]): KeyValueGroupedDataset[K, T]
По сравнению с groupBy
, который принимает Columns
:
def groupBy(cols: Column*): RelationalGroupedDataset
или String
def groupBy(col1: String, cols: String*): RelationalGroupedDataset
разница должна быть очевидна - первые два возвращают KeyValueGroupedDataset
(предназначено для обработки с помощью «функционального», строго типизированного API, например mapGroups
или reduceGroups), while the later methods return
RelationalGroupedDataset` (предназначенодля обработки с использованием SQL-подобного API).
В общем см .: