我有以下的数据帧,其中第三列是“clickedAirbnb”和第四列是“等级”根据spark数据框中另一列的值查找列的最大值?
| Tom| Paris| | 1|
| Tom| Mumbai| | 1|
| Tom| Stockolm| | 1|
| Tom| Oslo| airbnb1| 2|
| Tom| Tokyo| airbnb1| 2|
| Tom| Bangalore| airbnb1| 2|
| Sam| Seoul| airbnb11| 1|
| Sam| Tokyo| airbnb11| 1|
| Sam| Berlin| airbnb12| 2|
| Sam| Bangalore| airbnb12| 2|
| Sam| Singapore| airbnb12| 2|
| Sam| Oslo| airbnb2| 3|
| Sam| Amsterdam| airbnb2| 3|
| Sam| Bangalore| airbnb2| 3|
我想回到那些列“clickedAirbnb”包含空值和柱“最大等级”小于2 这里是我试过,但不起作用(无效操作对列抱怨)
val result1and2 = result.where(col("clickedAirbnb").contains("")
&& max(col("rank")) <= 2)
有没有一种方法来计算列上的最大价值?
UPDATE1: 要备份一下,结果DF计算这样
val window = Window.partitionBy(df1("User")).orderBy(df1("clickedAirbnb"))
val result = df1.withColumn("clickedDestHotRank", dense_rank().over(window))
现在返回这些用户那里clickedAirbnb(第三列)是空的,排名(第4列)的最大值呢不超过2
val result2 = result.where(col("clickedAirbnb").contains("")
&& (max(col("rank")) <=2))
你的意思是其中'rank'小于2? – mtoto
@moto - 请找到上述更新。 – user1384205