我有一个 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"))
否则就成功了