Join Pyspark仅保留不同的(删除所有重复项)

Join Pyspark仅保留不同的(删除所有重复项),join,pyspark,duplicates,Join,Pyspark,Duplicates,连接两个数据帧(它们有自己的ID)后,我有一些重复项(来自两个源的重复ID) 我想删除任一ID上重复的所有行(因此不保留重复的一次出现) 我可以根据第一个ID进行分组,对count==1进行计数和筛选,然后对第二个ID重复该操作,然后将这些输出内部连接回原始连接的数据帧-但这感觉有点长 是否有一个更简单的方法,比如dropDuplicates(),但不留下任何重复项 我看到pandas可以选择不保留第一个重复的df.drop_duplicates(subset=['A','C'],keep=Fa

连接两个数据帧(它们有自己的ID)后,我有一些重复项(来自两个源的重复ID) 我想删除任一ID上重复的所有行(因此不保留重复的一次出现)

我可以根据第一个ID进行分组,对count==1进行计数和筛选,然后对第二个ID重复该操作,然后将这些输出内部连接回原始连接的数据帧-但这感觉有点长

是否有一个更简单的方法,比如dropDuplicates(),但不留下任何重复项

我看到pandas可以选择不保留第一个重复的df.drop_duplicates(subset=['A','C'],keep=False)

dropDuplicates() 据这位官员说

返回删除重复行的新数据帧(可选) 考虑到某些列

要删除考虑所有列的重复项,请执行以下操作:

df.dropDuplicates()
如果要从特定列中删除重复项

df.dropDuplicate(subset=col_name)
对于多列:

df.dropDuplicates(subset=[col_name1, col_name2])
编辑评论 删除重复项() 据这位官员说

返回删除重复行的新数据帧(可选) 考虑到某些列

要删除考虑所有列的重复项,请执行以下操作:

df.dropDuplicates()
如果要从特定列中删除重复项

df.dropDuplicate(subset=col_name)
对于多列:

df.dropDuplicates(subset=[col_name1, col_name2])
编辑评论
我使用了df.dropDuplicate(subset=col_name),但我相信这会保留重复集合中的第一行。我希望加入后的dataframe只包含贡献dataframe的ID之间的1-1链接。我使用了df.dropDuplicate(subset=col_name),但我相信这保留了重复集合中的第一行。我希望加入后的数据帧只包含贡献数据帧的ID之间的1-1链接。partitionBy(“ID1”)和Window\U df2=Window。partitionBy(“ID2”)然后我可以在窗口上添加具有两个ID计数的列。然后过滤到仅计数为1。partitionBy使用几乎唯一的值是否会导致效率低下?window_df1=window.partitionBy(“ID1”)和window_df2=window.partitionBy(“ID2”)然后,我可以在窗口上添加两个ID计数的列。然后过滤到仅计数为1。使用几乎唯一的值进行分区是否效率低下?