删除spark数据帧中重复的所有记录

sal*_*nbw 4 scala duplicates apache-spark apache-spark-sql spark-dataframe

我有一个包含多列的spark数据帧.我想找出并删除列中具有重复值的行(其他列可以不同).

我尝试使用dropDuplicates(col_name)但它只会删除重复的条目,但仍然在数据帧中保留一条记录.我需要的是删除最初包含重复条目的所有条目.

我使用的是Spark 1.6和Scala 2.10.

Rap*_*oth 6

我会使用窗口函数.假设您要删除重复的id行:

import org.apache.spark.sql.expressions.Window

df
  .withColumn("cnt", count("*").over(Window.partitionBy($"id")))
  .where($"cnt"===1).drop($"cnt")
  .show()
Run Code Online (Sandbox Code Playgroud)