如何使用 Spark SQL 对均值列进行排序?

Posted

技术标签:

【中文标题】如何使用 Spark SQL 对均值列进行排序?【英文标题】:How to sort column of means with Spark SQL? 【发布时间】:2019-06-14 15:55:56 【问题描述】:

我通过使用groupBymean 函数来查找平均值,就像这样。

x.groupBy("Col1", "Col2" "Col3").mean("Col4")

但是,我想稍后也使用均值对列进行排序。我怎样才能做到这一点?我知道我们可以使用orderBy 函数对列进行排序,但这只能用于具有名称的列,而我们没有任何名称的列。

我尝试了以下方法,但它不起作用。

x.groupBy("Col1", "Col2" "Col3").mean("Col4").alias("Mean").orderBy("Mean")

我也试过as而不是alias,但这也不起作用。

【问题讨论】:

你为什么不知道列名? 因为mean会创建一个新列。在这种情况下有没有办法找到名字? 如果我理解得很好,您想给名称起别名以便在运行时知道它吗? :) 【参考方案1】:

您可以使用 as 为您的列命名。

所以名字会在运行时知道!

x.groupBy("Col1", "Col2" "Col3").agg(mean("Col4").as("CustomName"))

【讨论】:

所以它必须用 agg 调用,我明白了。 没错,这样你甚至可以有多个聚合!

以上是关于如何使用 Spark SQL 对均值列进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spark 中对包含日期和时间值的列进行排序?

如何在不使用 Spark SQL 的情况下对 Spark 中的数据帧进行排序?

在 spark scala 中对数据框的每一列进行排序

sql 字符串 排序

如何根据日期对SQL Server中的多个列进行排序

如何用java对excel进行自定义排序?