如何在Java中按照列的组合对Spark DataFrame 进行排序?

huangapple go评论73阅读模式
英文:

How to sort spark dataframe on the combination of columns in Java?

问题

我在Java中有一个Spark数据帧,类似下面这样:

我希望它根据“Col3”进行排序,但是Col1和Col2的所有值都应该在一组中。
结果应该类似于下面这样:

英文:

I have a spark data frame in Java, something like below:

如何在Java中按照列的组合对Spark DataFrame 进行排序?

I want it to be sorted based on "Col3" but all the values of Col1 and Col2 should be in a group.
The result should be something like below:

如何在Java中按照列的组合对Spark DataFrame 进行排序?

答案1

得分: 1

groupBy()函数在聚合过程中使用,而您的要求仅需要orderBy()函数。

假设DataFrame df 有3列:Col1、Col2、Col3,您可以在Spark中执行以下操作:

val sortedDf = df.orderBy(col("Col1").desc, col("Col2").desc, col("Col3").asc)

相同操作的POC可在此处找到:SQLFIDDLE链接

英文:

The groupBy() function is used during aggregation while your requirement just requires orderBy()

Assuming dataframe df with 3 columns Col1, Col2, Col3, you can do the below in Spark

val sortedDf = df.orderBy(col("Col1").desc,col("Col2").desc,col("Col3").asc)

POC for the same is available here SQLFIDDLE

huangapple
  • 本文由 发表于 2020年9月17日 15:50:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/63933519.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定