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

如何在PySpark大型DataFrame中移除Column2值不在Column1中的行

在PySpark中移除Column2值不在Column1中的行

针对大型PySpark DataFrame,要移除其中Column2值不在Column1范围内的行,可按以下方式处理:

实现方案

  1. 先提取Column1的所有唯一值,减少后续连接操作的数据量,提升处理效率:
ids = df.select("column1").distinct()
  1. 通过**左半连接(left_semi)**筛选出需要保留的行(左半连接会返回左表中在右表有匹配的行,正好对应保留Column2值存在于Column1中的行,也就是移除不在范围内的行),注意要指定正确的关联条件:
filtered_df = df.join(ids, df.column2 == ids.column1, how="left_semi")

如果你的需求是反过来——保留Column2值不在Column1中的行,就改用左反连接(left_anti):

filtered_df = df.join(ids, df.column2 == ids.column1, how="left_anti")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:33:32