Scala 错误:值orderBy不是org.apache.spark.sql.RelationalGroupedDataset的成员

Scala 错误:值orderBy不是org.apache.spark.sql.RelationalGroupedDataset的成员,scala,apache-spark,Scala,Apache Spark,运行此代码时: df 。选择($“计算日期”、$“引擎系列”、$“程序组名称”) .groupBy($“计算日期”,“发动机系列”,“程序组名称”) .orderBy($“计算日期”.desc) .count() .WithColumnRename(“计数”、“实际计数”) .show() 我得到以下错误: 错误:值orderBy不是org.apache.spark.sql.RelationalGroupedDataset的成员 如错误消息中所述,orderBy不能用于RelationalGr

运行此代码时:

df
。选择($“计算日期”、$“引擎系列”、$“程序组名称”)
.groupBy($“计算日期”,“发动机系列”,“程序组名称”)
.orderBy($“计算日期”.desc)
.count()
.WithColumnRename(“计数”、“实际计数”)
.show()
我得到以下错误:

错误:值orderBy不是org.apache.spark.sql.RelationalGroupedDataset的成员

如错误消息中所述,
orderBy
不能用于
RelationalGroupedDataset

groupBy
函数不会像
where
select
甚至
orderBy
函数那样返回基本的
DataFrame
。它返回一个
RelationalGroupedDataset
,您只能对其应用聚合函数,例如示例中的
count
。然后,聚合函数将返回一个可以排序的
数据帧


在您的情况下,只需切换
orderBy
count
,它就会起作用。

如错误消息中所述,
orderBy
不能用于
RelationalGroupedDataset

groupBy
函数不会像
where
select
甚至
orderBy
函数那样返回基本的
DataFrame
。它返回一个
RelationalGroupedDataset
,您只能对其应用聚合函数,例如示例中的
count
。然后,聚合函数将返回一个可以排序的
数据帧


在您的情况下,只需切换
orderBy
count
,它就会工作。

基本上GroupBy将返回RelationalGroupedDataset,这意味着与包含一些组的数据集的关系。 现在,要将此RelationalGroupedDataset转换为数据帧,您需要为此数据集的每个组指定至少一个聚合。 现在,此聚合可以是类似count、sum的任何内容,也可以使用.agg()方法对RelationalGroupedDataset应用多个聚合。
一旦将此RelationalGroupedDataset转换为普通数据帧,您就可以在此数据帧上使用普通orderBy和其他函数。

基本上,GroupBy将返回RelationalGroupedDataset,这意味着与包含某些组的数据集的关系。 现在,要将此RelationalGroupedDataset转换为数据帧,您需要为此数据集的每个组指定至少一个聚合。 现在,此聚合可以是类似count、sum的任何内容,也可以使用.agg()方法对RelationalGroupedDataset应用多个聚合。 将此RelationalGroupedDataset转换为普通数据帧后,就可以在此数据帧上使用普通orderBy和其他函数