使用.GroupByKey
和.GroupBy
何时使用 DF 的列名作为参数的根本区别是什么?
哪一个时间效率高,每个人到底是什么意思,请在我通过一些例子时详细解释一下,但这很令人困惑。
没有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)。
一般见:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句