Как мне получить функцию более высокого порядка в Scala для правильного принятия предиката искрового фильтра?Т.е.
val df = Seq(1,2,3,4).toDF("value")
df.filter(col("value")> 2).show
df.filter(col("value")< 2).show
работает просто отлично.Но когда я пытаюсь преобразовать его в функцию, которая принимает предикат фильтра (примечание: та же сигнатура, что и у оператора >
), компилятор больше не находит левую / правую часть для отправки в предикат.
def myFilter =(predicate:Any =>Column)(df:DataFrame)= {
df.filter(col("value") predicate 2).show // WARN this does not compile
}
df.transform(myFilter(>)).show
Как это можно заставить работать?