如何使用 Spark SQL 对均值列进行排序?
Posted
技术标签:
【中文标题】如何使用 Spark SQL 对均值列进行排序?【英文标题】:How to sort column of means with Spark SQL? 【发布时间】:2019-06-14 15:55:56 【问题描述】:我通过使用groupBy
和mean
函数来查找平均值,就像这样。
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 对均值列进行排序?的主要内容,如果未能解决你的问题,请参考以下文章