[stackoverflow中的此post使用window方法使用pyspark查找数据框是否具有重复值
w = Window.partitionBy('ID', 'ID2', 'Number')
dfdupe = df.select('*', f.count('ID').over(w).alias('dupeCount'))\
.where('dupeCount > 1')\
.drop('dupeCount')\
.show()
我读到开窗显示数据帧会将整个数据帧的内容强制进入内存,并且没有使用使分布式计算如此理想的rdd方法。我对这个假设是否正确?如果是这样,如何在不对大型数据集使用窗口的情况下实现相同的结果?
任何见识将不胜感激。
谢谢
更新:我忘了提到我不想删除重复项,而是将它们提取为单独的数据帧
df.dropDuplicates(['ID','ID2','Number'])
https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrame.dropDuplicates