我想找到与另一个数据帧不同的数据帧行,所以我尝试了subtract,但我有一些奇怪的结果。
我从
的数据框中随机获取一行toSub = df.sample(False, 0.1, seed=0).limit(1)
然后我确保它是一个唯一的行,检查该行的id,原始数据帧中有多少时间
df.filter(df['idCol']=="idFromRandomSample").count()
>>1
原来的df有
df.count()
>>10752732
但是当我减去时,我得到了
df.subtract(toSub).count()
>>10749495
为什么这与我预期的10752731不同。 我的逻辑中有缺陷吗?为什么减去额外的行?不应该减去一行吗?
答案 0 :(得分:1)
也许您的数据中有重复项。
请报告
toSub.count()
df.dropDuplicates().count()
df.dropDuplicates().subtract(toSub).count()