PySpark如何基于列表批量排除指定值的行?
解决方案
可以用PySpark的isin()方法结合取反操作~来实现,不用逐个写判断条件:
my_list = ["temp1","temp2", "temp10", "temp15"] # 筛选出value列不在my_list中的行,即删除列表内元素对应的行 res = res.filter(~res.value.isin(my_list))
也可以用where方法,效果完全一致:
res = res.where(~res.value.isin(my_list))
说明
res.value.isin(my_list):判断DataFrame的value列每个值是否存在于my_list中,返回一个布尔类型的列~:对布尔列取反,把“存在于列表”的结果转为“不存在于列表”filter/where:根据布尔列筛选出符合条件的行,最终得到删除了目标行的DataFrame
内容的提问来源于stack exchange,提问作者ar_mm18
相关产品推荐
相关产品推荐

