鉴于以下DataFrame df
,如何为field2
和cid
的每个唯一组合计算field1
的最常用值?
cid field1 field2
1 aaa x
1 aaa x
1 aaa y
1 bbb x
1 bbb y
这是我的代码,但如果可能,我想简化它:
df.groupBy("cid","field1").agg(count("field2") as "cnt")
val w = Window.partitionBy(Seq(col("cid"),col("field1"))).orderBy(col("cnt").desc)
val result = temp.withColumn("rn", row_number.over(w)).where(col("rn") === 1).drop("rn")