Spark Scala中GroupByKey($“ col”)和GroupBy($“ col”)之间的区别

时间:2018-10-23 12:17:14

标签: scala apache-spark apache-spark-sql

当iam使用DF的列名作为参数时,使用GroupByKey和GroupBy的根本区别是什么?

1 个答案:

答案 0 :(得分:2)

没有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的{​​{1}}相比:

Columns

def groupBy(cols: Column*): RelationalGroupedDataset

String

区别应该很明显-前两个返回def groupBy(col1: String, cols: String*): RelationalGroupedDataset (打算用于处理“函数”,“强类型API,例如KeyValueGroupedDatasetmapGroups RelationalGroupedDataset`(打算用于处理使用类似SQL的API)。

一般请参见: