当两个ID在Scala中具有相同的最高价格时,以较小的ID获得最高价格

时间:2019-03-13 02:40:32

标签: scala apache-spark apache-spark-sql databricks

我有一个数据框调用productPrice,它具有列ID和Price,我想获得具有最高价格的ID,如果两个ID具有相同的最高价格,我只会得到具有较小ID号的一个。我用

val highestprice = productPrice.orderBy(asc("ID")).orderBy(desc("price")).limit(1) 但是我得到的结果不是ID较小的结果,而是我的ID较大的结果。我不知道我的逻辑出了什么问题,知道吗?

1 个答案:

答案 0 :(得分:0)

使用Spark SQL解决相同的问题:

val df = Seq((4, 30),(2,50),(3,10),(5,30),(1,50),(6,25)).toDF("id","price")

df.createOrReplaceTempView("prices")

-

%sql
SELECT id, price
FROM prices
ORDER BY price DESC, id ASC
LIMIT(1)