我有以下的數據幀,其中第三列是「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