是否可以在 pyspark 中同时使用 isin() 和通配符搜索?
Posted
技术标签:
【中文标题】是否可以在 pyspark 中同时使用 isin() 和通配符搜索?【英文标题】:Is it possible to use isin() and wildcard searches together in pyspark? 【发布时间】:2020-07-22 06:22:17 【问题描述】:我有一个数据框,我想根据条件列表过滤行。如果我知道确切的值,这似乎可行 - 使用 .isin()
- 但是当我想使用通配符时 - 类似于 @987654322 @ - 过滤似乎不起作用。有谁知道这是否可能?否则我将不得不遍历条件并为每个条件添加一个类似的过滤器。我已经尝试在条件列表中使用和不使用 * 来解压它:
filter_out_conditions=['condition_1', 'condition_2']
df.where(~col(check_col).isin(*filter_out_conditions))
df.where(~col(check_col).isin(filter_out_conditions))
【问题讨论】:
【参考方案1】:您可以根据需要创建条件
cons = ['%1%','%3%']
cod = ' or '.join([f"col1 like 'i'" for i in cons])
df.filter(cod)
【讨论】:
以上是关于是否可以在 pyspark 中同时使用 isin() 和通配符搜索?的主要内容,如果未能解决你的问题,请参考以下文章
逻辑筛选的总结isin,in和not in,~,&和,between
pandas使用isin函数和all函数判断dataframe特定数列中是否包含指定列表中的全部内容