pyspark动态过滤

时间:2018-10-17 05:10:34

标签: apache-spark dynamic filter pyspark

是否可以动态过滤数据帧?

例如,如果我有下面的字典,其中包含可变数量的键值对,那么如何动态过滤数据框?

x = {
"date": "2018-10-01",
"color": "red"
}

我可以做到

df.filter(df["date"] == x["date"] & df["color"] == x["color"])

但是字典可以有可变数量的键值对,例如“ shape”:“ circle”,所以我必须添加到过滤器中。或者,如果字典只有一个kvp,则应仅在该列上进行过滤。有没有一种方法可以根据字典动态构建过滤器?

谢谢

1 个答案:

答案 0 :(得分:3)

由于逻辑运算符为AND,因此您可以简单地在循环中创建连续过滤的数据帧:

for col in x:
    df = df.filter(df[col] == x[col])