我有一个列为的数据帧df
date: timestamp
status : String
name : String
我正在查找所有名称的最后状态
val users = df.select("name").distinct
val final_status = users.map( t =>
{
val _name = t.getString(0)
val record = df.where(col("name") === _name)
val lastRecord = userRecord.sort(desc("date")).first
lastRecord
})
这适用于数组,但对于spark数据帧,它正在抛出java.lang.NullPointerException
更新1:使用removeDuplicates
df.sort(desc("date")).removeDuplicates("name")
这是一个好的解决方案吗?
此
df.sort(desc("date")).removeDuplicates("name")
不能保证工作。回答这个问题的解决方案应该对你有效
spark:如何在数据帧上进行dropDuplicates,同时保持最高时间戳行