为什么 spark (scala API) 的 agg 函数需要 expr 和 exprs 参数?

问题描述 投票:-1回答:1

Spark API RelationalGroupedDataset 有功能 agg:

@scala.annotation.varargs
def agg(expr: Column, exprs: Column*): DataFrame = {
  toDF((expr +: exprs).map {
    case typed: TypedColumn[_, _] =>
      typed.withInputType(df.exprEnc, df.logicalPlan.output).expr
    case c => c.expr
  })
}

为什么需要两个不同的论点?为什么不能只取两个参数?exprs: Column* 有谁有一个隐式函数可以接受一个参数?

scala apache-spark apache-spark-sql aggregate-functions variadic-functions
1个回答
4
投票

这是为了确保你至少指定一个参数。

纯varargs不能做到这一点,你可以调用没有任何参数的方法。

© www.soinside.com 2019 - 2024. All rights reserved.