gpt4 book ai didi

python - 如何动态过滤掉完全匹配的 Spark 数据框中的行?

转载 作者:行者123 更新时间:2023-11-28 22:08:49 32 4
gpt4 key购买 nike

我有这样的字典

dict = {
"ColA": "A",
"ColB": "B"
}

我想使用此字典删除数据框中的一行,df,前提是该行与字典中的每个值完全匹配。

所以使用输入数据框

+------+------+
| ColA | ColB |
+------+------+
| A | A |
| A | B |
| B | B |
+------+------+

输出将是

+------+------+
| ColA | ColB |
+------+------+
| A | A |
| B | B |
+------+------+

我试过这样的事情

 for col in dict:
df = df.filter(df_to_upsert[col] != row[col])

然而,这只会过滤掉 row_dict 中具有任何匹配值的行,因此在这种情况下,dataframe 中的每一行都将被过滤。

最佳答案

使用reduce函数的典型案例:

from pyspark.sql.functions import col
from functools import reduce

cond = reduce(lambda x,y: x|y, [ col(k)!=v for k,v in dict.items() ])

df.filter(cond).show()
+----+----+
|ColA|ColB|
+----+----+
| A| A|
| B| B|
+----+----+

关于python - 如何动态过滤掉完全匹配的 Spark 数据框中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58126939/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com