嗨,我正在尝试做一个groupby,然后使用自定义case类在spark数据集上进行一些聚合,但是一直遇到错误。请注意,我希望输出数据集的类型仍然与原始数据集的类型相同。
case class ExampleRow(
a: String,
b: String,
c: Double,
)
val origDataset: Dataset[ExampleRow] = ...
val newDataset: Dataset[ExampleRow] = origDataset
.groupByKey(r => r.a, r.b)
.agg(typed.avg[TimeUsageRow](_.other).name("c").as[Double])
运行时总是出现以下错误:
type mismatch;
[error] found : org.apache.spark.sql.Dataset[((String, String), Double)]
[error] required: org.apache.spark.sql.Dataset[example.ExampleRow]
[error] .agg(
[error] ^
[error] one error found
有什么想法吗?
暂无答案!
目前还没有任何答案,快来回答吧!