У меня есть датафрейм userdf
как
val userdf = sparkSession.read.json(sparkContext.parallelize(Array("""[{"id" : 1,"name" : "user1"},{"id" : 2,"name" : "user2"}]"""))
)
scala> userdf.show
+---+-----+
| id| name|
+---+-----+
| 1|user1|
| 2|user2|
+---+-----+
Я хочу получить пользователя с id === 1
, и того же я могу добиться с помощью кода, подобного
scala> userdf.filter($"id"===1).show
+---+-----+
| id| name|
+---+-----+
| 1|user1|
+---+-----+
То, что я хочу достичь, похоже на
val filter1 = $"id"===1
userdf.filter(filter1).show
Эти фильтры извлекаются из файлов конфигурации, и я пытаюсь выполнить более сложный запрос, используя этот строительный блок, что-то вроде
userdf.filter(filter1 OR filter2).filter(filter3).show
где filter1
, filter2
, filter3
, AND
и OR
условие извлекаются из конфигураций
Спасибо