You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark内连接是否保留第一个数据集的重复项?附案例

PySpark内连接与目标结果实现方案

1. 内连接是否保留第一个数据集的重复项?

会保留。只要左表(DF1)里的重复行在右表(DF2)能找到匹配的关联键(这里是Name字段),内连接就会完整保留这些重复项。比如DF1中存在5条A的记录,因为DF2里有A,所以每条A都会和DF2的A完成匹配,最终全部出现在结果中,不会被去重。

2. 哪种连接方式能得到目标结果?

有两种符合要求的连接方式:

  • 内连接(Inner Join):将DF1和DF2按Name字段做内连接,会筛选出DF1中Name存在于DF2的所有行,同时保留DF1的重复项,结果和你给出的目标完全一致。
    代码示例:
    result_df = df1.join(df2, on="Name", how="inner")
    
  • 半连接(Semi Join):半连接仅返回左表(DF1)中存在于右表(DF2)的行,不会带入右表的列,同样会保留DF1的重复项,结果也满足需求。
    代码示例:
    result_df = df1.join(df2, on="Name", how="semi")
    

如果只是需要筛选符合条件的行,两种方式都适用;如果后续需要用到右表的其他字段(本次场景中没有),内连接的灵活性更高。

内容的提问来源于stack exchange,提问作者Gravity Boy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:35:18