检查 Pyspark Dataframe 中的重复项

check for duplicates in Pyspark Dataframe

是否有一种简单有效的方法来根据列检查 python 数据框的重复项(而不是删除它们)?

我想根据列的组合检查数据框是否有重复项,如果有,则使过程失败。

TIA。

最简单的方法是检查数据框中的行数是否等于删除重复项后的行数。

if df.count() > df.dropDuplicates([listOfColumns]).count():
    raise ValueError('Data has duplicates')

如果你还想实际检查重复项,你可以这样做

df \
    .groupby(['column1', 'column2']) \
    .count() \
    .where('count > 1') \
    .sort('count', ascending=False) \
    .show()

检查重复项的另一种方法是:

df.exceptAll(df.dropDuplicates([listOfColumns]))