pyspark - 如果使用正则表达式对 Pyspark 列进行其他条件处理,该怎么办?

我有一个 pyspark dataframe

event_name
0 a-markets-l1
1 a-markets-watch
2 a-markets-buy
3 a-markets-z2
4 scroll_down

这个 dataframe 有 event_name 列

EXCLUDE_list = ["a-markets-buy", "a-markets-watch"]
expr = "a-markets"

new_df = df.withColumn("event_name",
                           when(
                               (col('event_name').rlike(expr)
                                & ~(col('event_name').isin(EXCLUDE_list)),'a-markets'))

我试图只过滤掉并用“a-markets”替换那些具有“a-markets”而不在 EXCLUDE_list 列表中的 values

回答1

new_df = df.withColumn("event_name",
                           when(
                               (col('event_name').rlike(expr)
                                & ~(col('event_name').isin(EXCLUDE_list)),'a-markets').otherwise(col("event_name"))

否则就成功了

相似文章

随机推荐

最新文章