我需要计算第一列和第二列中对的出现次数,并以降序排序。如果计数中有平局,请首先在第二栏中列出数字最小的那对。
以下内容适用,但决胜局部分除外。第一行应为_c1 2中的1,2,3 bc小于4,并且它们都具有相同的计数。如何按desc和c2 asc计数?
new_df.groupBy($"_c0",$"_c1").count().orderBy($"count".desc).limit(10).show()
+---+---+-----+
|_c0|_c1|count|
+---+---+-----+
| 1| 4| 3|
| 1| 2| 3|
| 4| 1| 2|
| 3| 1| 2|
| 3| 4| 2|
| 2| 1| 2|
| 2| 4| 1|
| 1| 7| 1|
| 7| 2| 1|
| 2| 7| 1|
+---+---+-----+
答案 0 :(得分:3)
尝试将Desc的计数和asc的_c2添加到order by子句中。
new_df.groupBy($"_c0",$"_c1").count().orderBy($"count".desc, $"c2".asc).limit(10).show()
按照要应用规则的顺序执行此操作。在上面的示例中,将先按计数再按c2