错误:value orderBy不是org.apache.spark.sql.RelationGroupedDatase



运行此代码时:

df
.select($"CALC_DATE", $"ENGINE_SERIES", $"program_group_name")
.groupBy($"CALC_DATE", $"ENGINE_SERIES", $"program_group_name")
.orderBy($"CALC_DATE".desc)
.count()
.withColumnRenamed("count", "Actual_count")
.show()

我得到以下错误:

error: value orderBy is not a member of org.apache.spark.sql.RelationalGroupedDataset

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

groupBy函数不像whereselect甚至orderBy函数那样返回基本DataFrame。它返回一个只能应用聚集函数的RelationalGroupedDataset,例如示例中的count。聚合函数将返回一个DataFrame,您可以对其进行排序

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

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

相关内容

  • 没有找到相关文章

最新更新