Я хотел бы понять, как использовать выражения CaseWhen
с новыми DataFrame
api.CaseWhen in spark DataFrame
Я не вижу каких-либо ссылок на него в документации, и единственное место, где я видел это в коде: https://github.com/apache/spark/blob/v1.4.0/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala#L397
Я хотел бы, чтобы иметь возможность написать что-то вроде этого:
val col = CaseWhen(Seq(
$"a" === lit(1), lit(10),
$"a" === lit(2), lit(15),
...
lit(20)
))
но этот код не будет компилироваться, потому что Seq
имеет тип Column
и не Expression
Что такое правильный способ использовать CaseWhen
?
Возможно, вы правы, хотя это не 'private [slq]' и не помечено как '@ DeveloperApi'. И я не могу сделать 'column.expr', так как' expr' '' protected' – lev
Вы правы. Я пропустил, что 'expr' защищен. Но я нашел другое решение. Я обновил ответ. Надеюсь, теперь это сработает. –