【问题标题】:How to sort column of means with Spark SQL?如何使用 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会创建一个新列。在这种情况下有没有办法找到名字?
  • 如果我理解得很好,您想给名称起别名以便在运行时知道它吗? :)

标签: scala apache-spark dataframe apache-spark-sql


【解决方案1】:

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

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

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

【讨论】:

  • 所以它必须用 agg 调用,我明白了。
  • 没错,这样你甚至可以有多个聚合!
猜你喜欢
  • 2011-10-05
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 1970-01-01
  • 2020-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多