在 Spark-SQL 中需要一个 TRUE 和 FALSE 列



>我正在尝试为Spark SQL DataFrame编写一个多值过滤器。

我有:

val df: DataFrame      // my data
val field: String      // The field of interest
val values: Array[Any] // The allowed possible values

我正在尝试提出过滤器规格。

目前,我有:

val filter = values.map(value => df(field) === value)).reduce(_ || _)

但是,在我收到空值列表的情况下,这并不可靠。 为了涵盖这种情况,我想:

val filter = values.map(value => df(field) === value)).fold(falseColumn)(_ || _)

但我不知道如何指定假列。

有人知道该怎么做吗?

有没有更好的方法来编写这个过滤器?(如果是这样,我仍然需要如何获得假列的答案 - 我需要一个单独的 trueColumn (。

始终为真的列:

val trueColumn = lit(true)

始终为假的列:

val falseColumn = lit(false)

使用 lit(...) 意味着无论数据帧包含哪些列,这些列都将始终是有效的列。

相关内容

  • 没有找到相关文章

最新更新