#apache-spark
#apache-spark
Вопрос:
У меня есть dataset
следующее :
name | gender | age |
Kirito | Male | 17 |
Eugeo | Male | 15 |
Asuna | Female | 16 |
Alice | Female | 15 |
В отфильтрованном результате я хочу, чтобы (все мужчины) объединялись (все женщины, возраст которых младше 16 лет) (поэтому должны быть только возвращаемые строки Kirito, Eugeo and Alice
), как я могу выполнить этот фильтр?
Комментарии:
1. Как насчет первой попытки — в качестве технического руководителя?
Ответ №1:
Попробуйте это
dataset.filter((dataset.gender=='Male') | ((dataset.gender=='Female') amp; (dataset.age<16)).show()
Комментарии:
1. Привет, да, это сработает. Но я хочу знать, есть ли лучшие способы, потому что в других сценариях я не могу просто сказать (dataset.gender==’Male’), потому что «пол» будет иметь много значений.
2. Привет @TechLead В случае, если есть длинный список, вы можете попробовать функцию isin (список).