TL; DR : мне нужна эта искровая постоянная:
val False : Column = lit(1) === lit(0)
Есть идеи, как сделать это красивее?
Контекст проблемы
Я хочу отфильтровать кадр данных из коллекции. Например:
case class Condition(column: String, value: String)
val conditions = Seq(
Condition("name", "bob"),
Condition("age", 18)
)
val personsDF = Seq(
("bob", 30),
("anna", 20),
("jack", 18)
).toDF("name", "age")
При применении моей коллекции к PersonDF я ожидаю:
val expected = Seq(
("bob", 30),
("jack", 18)
)
. Для этого я создаю фильтр из коллекции и применяю его к фрейму данных:
val conditionsFilter = conditions.foldLeft(initialValue) {
case (cumulatedFilter, Condition(column, value)) =>
cumulatedFilter || col(column) === value
}
personsDF.filter(conditionsFilter)
Довольно мило, верно?
Но для этого мне нужно нейтральное значение оператора ИЛИ - False. Поскольку False не существует, это Spark, который я использовал:
val False : Column = lit(1) === lit(0)
Есть идеи, как это сделать без уловок?