【发布时间】:2022-01-20 05:58:34
【问题描述】:
当我尝试在 Spark where 函数中检查 OR 条件时,即使第一个条件为真,也会执行第二个条件。
如何跳过第二个条件的检查?
df.
...
.where(
(
lit(lastLoadingDate).isNull
.or(
col(srcDTTM) > lastLoadingDate.format(formatterDTTM)
)
)
&& col(SrcDTTM) <= currentLoadingDate.format(formatterDTTM)
)
我什至尝试检查下一个表达式:
df.
...
.where(
(
lit(true)
.or(
col(srcDTTM) > lastLoadingDate.format(formatterDTTM)
)
)
&& col(SrcDTTM) <= currentLoadingDate.format(formatterDTTM)
)
但第二个条件:
col(srcDTTM) > lastLoadingDate.format(formatterDTTM)
总是被执行。
【问题讨论】:
-
“总是被执行”是什么意思?
标签: apache-spark apache-spark-sql