是否可以在 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特定数列中是否包含指定列表中的全部内容

pandas使用isin函数和any函数判断dataframe特定数列中是否包含至少一个指定列表中的内容

Pandas .apply Loc 到 Pyspark

使用 pyspark 同时编写 parquet 文件

是否可以使用 pyspark 过滤 Spark DataFrames 以返回列值在列表中的所有行?