scala - 数据帧 : how to groupBy/count then order by count in Scala

标签 scala apache-spark

我有一个包含数千行的数据框,我正在寻找的是分组并计算一列,然后按输出排序:我所做的是一些看起来像:

import org.apache.spark.sql.hive.HiveContext
import sqlContext.implicits._


val objHive = new HiveContext(sc)
val df = objHive.sql("select * from db.tb")
val df_count=df.groupBy("id").count().collect()
df_count.sort($"count".asc).show()

最佳答案

您可以使用 sortorderBy如下

val df_count = df.groupBy("id").count()

df_count.sort(desc("count")).show(false)

df_count.orderBy($"count".desc).show(false)

不要使用 collect()因为它将数据作为 Array 传送给驱动程序.

希望这可以帮助!

关于scala - 数据帧 : how to groupBy/count then order by count in Scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51725418/

相关文章:

scala - CoGroupedRDD 是做什么的?

azure - 如何使用数据工厂在 HDInsights 群集中设置自定义 Spark 参数

java - 使用 Java API 查找提交 yarn 应用程序的用户

scala - 如何向 DataFrame 类型添加新方法?

scala - 抽象类和特征之间的区别

java - Elasticsearch Java API 中的范围查询

scala - 将列有效地聚合到 Set 中

apache-spark - 具有相同 groupId 的多个 Spark Kafka 消费者

java - 如何在 Scala 中替换缓冲图像中的最低有效位

scala - 为什么 List[Int].apply(1,2,3) 在 Scala 中出错?