在this post中,作者展示了如何对数据框和数据集进行相同的计算。尽管我了解Dataset(几乎)是类型安全的DataFrame,但我不了解在此特定示例中使用Dataset有什么好处。
通常,什么时候将使用数据集而不是DataFrame进行数据处理,反之亦然? (我需要非常具体的例子)
数据是一个数据框
data
.groupBy($"manager_name")
.agg(
round(avg($"response_time"), 1).as("time"),
round(avg($"satisfaction_level"), 1).as("satisfaction")
)
.orderBy($"satisfaction")
总和是一个数据集
summed
.groupByKey(x => x.manager_name)
.agg(scaledAvg(_.response_time), scaledAvg(_.satisfaction_level))
.map { case (managerName, time, satisfaction) =>
FeedbackRow(managerName, time, satisfaction)
}.orderBy($"statisfaction_level")