Здесь переменная "exprs" имеет тип столбца (т.е. exprs: Array[org.apache.spark.sql.Column] = Array(sum(country), sum(value), sum(price)))
.
, почему exprs: _*
сталкивается с ошибкой? Почему я должен указывать голову и хвост, которые, насколько я понимаю, относятся только к строке тип?
val resGroupByDF2 = data.groupBy($"country").agg(exprs: _*)
// почему это не работает
case class (
country: String,
value: Double,
price: Double
)
val data = Seq(
cname("NA", 2, 14),
cname("EU", 4, 61),
cname("FE", 5, 1),
)
.toDF()
val exprs = data.columns.map(sum(_)) // here it returns exprs: Array[org.apache.spark.sql.Column] = Array(sum(country), sum(value), sum(price))
val resGroupByDF2 = data.groupBy($"country").agg(exprs.head, exprs.tail: _*) // why just agg(exprs: _*) does not work in select or agg as it is already a column type