динамическая фильтрация pyspark - PullRequest
0 голосов
/ 17 октября 2018

Можно ли динамически фильтровать кадры данных?

Например, если у меня есть приведенный ниже словарь с переменным числом пар ключ-значение, как я могу динамически фильтровать кадр данных?

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

Я могу сделать это

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

Но в словаре может быть переменное число пар ключ-значение, например также "shape": "circle", поэтому мне придется добавить его в фильтр.Или, если в словаре только один kvp, он должен фильтровать только по этому столбцу.Есть ли способ построить фильтр динамически на основе словаря?

Спасибо

1 Ответ

0 голосов
/ 17 октября 2018

Поскольку ваш логический оператор AND, вы можете просто создавать последовательно отфильтрованные кадры данных в цикле:

for col in x:
    df = df.filter(df[col] == x[col])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...