如何在Where条件下使用Max函数

问题描述 投票:0回答:1

我正在编写代码来从列中选择不等于其他两个大值的最大值。最大值始终是第三大值。两个最大的值是占位符,(int)以年月格式999912和999901。

我一直尝试使用Max和Filter,没有运气。

val maxSurvey = s.max("SurveyMonth").filter(survey("SurveyMonth") =!= "999912" && survey("SurveyMonth") =!= "999901")

我预计目前的结果是201902。

scala apache-spark apache-spark-sql
1个回答
1
投票

您需要选择最大值,但过滤器中的代码也是错误的,如果您需要Max,为什么要将SurveyMonth与String进行比较?

更改后,您的代码将如下所示:

val maxSurvey = s.filter('SurveyMonth =!= 999912 && 'SurveyMonth =!= 999901).select(max('SurveyMonth))
© www.soinside.com 2019 - 2024. All rights reserved.