如何将任何列的最小值对应于火花中其他列的最大值



>我有一个由Spark sql中的以下csv文件组成的数据框:

客户,铲斗,频率

A,3,4

A,2,1

A,1,4

B,1,3

B,3,4

乙,2,4

C,3,1

C,2,1

C,4,1

D,2,3

D,4,5

D,1,5

对于每个客户,我想要与最大频率相对应的最小桶号。 期望输出 :

客户,铲斗

A,1

B,2

C,2

D,1

任何帮助将不胜感激。谢谢朋友们!!

窗口函数应该对你有所帮助。代码应如下所示:

val partitioner = Window.partionBy($"cust").orderBy($"freq", $"bucket" desc)
val partitionedDF = df.withColumn("numerator", rowNumber.over(partitioner))
//df is dataframe, which contains your data
partitionedDF.filter('numerator == 1)

我希望它会起作用

相关内容

  • 没有找到相关文章

最新更新