【问题标题】:Difference between GroupByKey($"col") and GroupBy($"col") in spark scalaSpark Scala 中 GroupByKey($"col") 和 GroupBy($"col") 的区别
【发布时间】:2018-10-23 12:17:14
【问题描述】:

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

哪一个是时间效率高的,每一个到底是什么意思,有人可以详细解释一下,因为我浏览了一些示例,但令人困惑。

【问题讨论】:

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


    【解决方案1】:

    没有将Column 作为参数的groupByKey 方法。有一些方法可以使用函数:

    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] 
    

    与采用ColumnsgroupBy 相比:

    def groupBy(cols: Column*): RelationalGroupedDataset 
    

    String

    def groupBy(col1: String, cols: String*): RelationalGroupedDataset 
    

    区别应该很明显 - 前两个返回 KeyValueGroupedDataset(用于处理“功能”、“强类型 API,如 mapGroupsreduceGroups), while the later methods returnRelationalGroupedDataset`(用于处理类似 SQL 的 API) .

    一般见:

    【讨论】:

      猜你喜欢
      • 2013-11-20
      • 2016-02-13
      • 2011-01-31
      • 2014-03-05
      • 2013-12-13
      • 2023-03-21
      • 2022-01-01
      相关资源
      最近更新 更多