根据Spark中的另一个Dataframe过滤Dataframe

时间:2016-04-14 03:40:56

标签: apache-spark spark-dataframe

我有一个带有列

的数据框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

Update1:​​使用removeDuplicates

df.sort(desc("date")).removeDuplicates("name")

这是一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

df.sort(desc("date")).removeDuplicates("name")

无法保证正常工作。回答这个问题的解决方案应该适合你

spark: How to do a dropDuplicates on a dataframe while keeping the highest timestamped row