Sparkapi 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*
? 有人有一个隐式函数只接受一个参数吗?
2条答案
按热度按时间qyswt5oh1#
我试着想象它将如何使用
cats.data.NonEmptyList
(需要cats-core
附属国:libraryDependencies += "org.typelevel" %% "cats-core" % "2.1.1"
):对于scala 2.12,使用标准库
List
:使用示例:
3z6pesqy2#
这是为了确保至少指定一个参数。
纯varargs不能做到这一点,您可以在没有任何参数的情况下调用该方法。