Разница между GroupByKey ($ "col") и GroupBy ($ "col") в искровой шкале - PullRequest
0 голосов
/ 23 октября 2018

Какая принципиальная разница с использованием .GroupByKey и .GroupBy, когда я использую имя столбца DF в качестве параметра?

Какой из них эффективен по времени и как каждый из них означает, может кто-нибудь объяснить подробно, когда я просмотрел несколько примеров, но это сбило с толку.

1 Ответ

0 голосов
/ 23 октября 2018

Нет метода 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).

В общем см .:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...